PHP에서 멀티 바이트 스트링을 처리 할 때는 사례에 민감한 교체 작업이 종종 필요합니다. MB_EREGI_REPLACE 는 사례에 민감하지 않은 정규식 교체를 구현하는 데 사용할 수있는 매우 실용적인 기능으로 중국어와 같은 다중 바이트 문자에 특히 적합합니다. 이 기사에서는 MB_EREGI_REPLACE 기능과 html <mark> 태그를 결합하여 텍스트의 키워드에 강조 표시 효과를 추가하는 방법을 소개합니다.
MB_EREGI_REPLACE 는 PHP의 멀티 바이트 스트링 함수 중 하나이며, 그 기능은 사례에 민감한 정기 교체를 수행하는 것입니다. 구문은 다음과 같습니다.
mb_eregi_replace(string $pattern, string $replacement, string $string, ?string $option = null): string
$ 패턴 : 일치하는 정규 표현식 (Case Insensentitive)
$ 교체 : 교체 문자열
$ String : 검색중인 문자열
$ 옵션 : 일치 동작을 제어하기위한 선택적 매개 변수
다중 바이트 캐릭터를 지원하며 중국어, 일본어, 한국 및 기타 언어의 텍스트 처리에 적합합니다.
html5 <mark> 태그는 강조 해야하는 텍스트를 표시하는 데 특별히 사용됩니다. 브라우저는 노란색 배경을 사용하여 기본적으로 표시된 컨텐츠를 표시하므로 키워드 강조 표시에 매우 적합합니다.
예를 들어:
이것은 a입니다 <mark>가장 밝은 부분</mark> 의 말。
"하이라이트"라는 단어는 노란색 배경으로 페이지에 표시됩니다.
다음은 mb_eregi_replace를 사용하여 지정된 키워드를 <mark> 태그로 래핑하여 강조 표시 효과를 달성하는 방법을 보여주는 샘플 코드입니다.
<?php
// 샘플 텍스트
$text = "PHP 매우 인기있는 서버 측 스크립팅 언어입니다。PHP 여러 프로그래밍 패러다임을 지원합니다。";
// 需要가장 밝은 부분的关键词(다중 일 수 있습니다,사용|분리)
$keywords = "php|서버 측";
// 정규 표현 구축,使사용括号捕获关键词本身,사건을 무시하십시오
$pattern = "(" . $keywords . ")";
// 使사용 mb_eregi_replace 사례에 민감한 교체를 만드십시오,키워드를 추가하십시오 <mark> 상표
$highlightedText = mb_eregi_replace(
$pattern,
"<mark>\\1</mark>",
$text
);
// 输出가장 밝은 부분后的文本
echo $highlightedText;
?>
실행 결과의 예 :
<mark>PHP</mark> 매우 인기가 있습니다<mark>서버 측</mark>스크립팅 언어。<mark>PHP</mark> 여러 프로그래밍 패러다임을 지원합니다。
이러한 방식으로 페이지의 키워드 부분은 <mark> 태그로 래핑하여 강조 표시를 달성합니다.
MB_EREGI_REPLACE 의 일치는 대소 문자를 사용하지 않으며 퍼지 매칭 키워드가 필요한 시나리오에 적합합니다.
정규 표현식의 키워드는 파이프 문자로 분리해야합니다 | "또는"의 관계를 나타냅니다.
키워드에 특수 문자가 포함 된 경우 먼저 정기적 인 일치에 영향을 미치지 않도록 탈출해야합니다.
멀티 바이트 스트링 처리가 올바른지 확인하려면 PHP 환경에서 MBString 확장이 활성화되어 있는지 확인하십시오.
다음 샘플 웹 주소가 있고 일부 키워드를 교체해야한다고 가정합니다.
<?php
$text = "공식 웹 사이트를 방문하십시오 https://m66.net/ 자세히 알아보십시오。";
// 가장 밝은 부분 “m66.net”
$keywords = "m66\\.net";
$pattern = "(" . $keywords . ")";
$highlightedText = mb_eregi_replace(
$pattern,
"<mark>\\1</mark>",
$text
);
echo $highlightedText;
?>
실행 후 "M66.net"이 강조 표시됩니다.
위의 소개를 통해 MB_EREGI_REPLACE 및 <MARK> 태그를 쉽게 사용하여 텍스트의 키워드에 강조 표시 효과를 추가하여 콘텐츠의 가독성 및 사용자 경험을 향상시킬 수 있습니다.