다국어 애플리케이션을 개발할 때 문자열 교체를 처리하는 것은 문자 인코딩, 케이스 감도, 일반 표현식의 언어 호환성 등을 포함하기 때문에 특히 복잡합니다. PHP는 이러한 작업을보다 정확하게 처리하는 데 도움이되는 다중 바이트 스트링 기능 MB_EREGI_REPLAPE를 제공합니다. 이 기사에서는 MB_EREGI_REPLACE 기능을 사용하여 다양한 지역에서 예상 결과를 얻을 수 있는지 확인하기 위해 MB_EREGI_REPLAPE 기능을 사용하는 방법을 자세히 설명합니다.
MB_EREGI_REPLACE 는 PHP Multibyte String Extension (MBString)의 기능으로, 사례에 민감하지 않은 일반 교체 작업을 수행합니다. Eregi_Replace 와 유사하게 중국어, 일본어, 한국 및 기타 캐릭터를 더 잘 지원할 수있는 UTF-8과 같은 다중 바이트 캐릭터 세트를 처리하도록 특별히 설계되었습니다.
함수 정의는 다음과 같습니다.
string mb_eregi_replace ( string $pattern , string $replacement , string $string [, string $option = "msr" ] )
$ 패턴 : 정규 표현식 (사례 무시)
$ 대체 : 텍스트를 교체하십시오
$ string : 검색 할 대상 텍스트
$ 옵션 (선택 사항) : "M"(다중 선), "S"(새 선을 일치 ) , "R"(대체 문자열 사용)와 같은 패턴 일치 동작을 제어하는 데 사용됩니다.
다른 언어가 포함 된 텍스트를 처리 할 때 STR_REPLACE 또는 PREG_REPLACE 와 같은 일반 문자열 교체 기능은 종종 디아크리닉 또는 기타 특수 문자를 올바르게 처리하지 못합니다. 예를 들어, "Stra? e"를 독일어의 "도로"로 바꾸는 경우 str_replace ( 'strasse', 'Road', $ 텍스트)를 직접 사용하면 "str? e"와 같은 사례 변형 또는 특수 문자를 놓칠 수 있습니다.
MB_EREGI_REPLACE는 유니 코드를 지원하고 기본적으로 케이스 불신 일치를 수행하기 때문에 이러한 복잡한 문자를 처리 할 수 있습니다.
여러 언어가 포함되어 있으며 케이스 나 변형 (예 : "Café", "Café", "Cafe"등에 관계없이 키워드 "Café"를 "커피 숍"으로 바꿔야한다고 가정하면 다음을 수행 할 수 있습니다.
<?php
mb_internal_encoding("UTF-8");
$text = "Let's meet at the Café. A nice little cafe downtown. Also try the CAFé by the river.";
$pattern = "café"; // 케이스 둔감,멀티 바이트를 자동으로 지원합니다
$replacement = "coffee shop";
$result = mb_eregi_replace($pattern, $replacement, $text);
echo $result;
?>
산출:
Let's meet at the coffee shop. A nice little coffee shop downtown. Also try the coffee shop by the river.
보시다시피, 캐릭터 세트 나 케이스에 대해 걱정하지 않고 모든 형태의 "카페"가 올바르게 대체됩니다.
예를 들어, 키워드 "다운로드"를 웹 사이트 콘텐츠의 링크 https://m66.net/download 로 자동으로 바꾸면 다음 방법을 사용할 수 있습니다.
<?php
mb_internal_encoding("UTF-8");
$content = "여기를 클릭하여 소프트웨어를 다운로드 할 수 있습니다,다른 페이지에서 관련 정보를 다운로드 할 수도 있습니다。";
$pattern = "다운로드";
$replacement = "<a href=\"https://m66.net/download\">다운로드</a>";
$result = mb_eregi_replace($pattern, $replacement, $content);
echo $result;
?>
산출:
여기를 클릭 할 수 있습니다<a href="https://m66.net/download">다운로드</a>소프트웨어,다른 페이지로 이동할 수도 있습니다<a href="https://m66.net/download">다운로드</a>관련 정보。
이 예는 다국어 키워드를 링크로 변환하는 방법을 보여주고 추가 복잡한 논리를 도입하지 않고 컨텐츠 상호 작용을 향상시키는 방법을 보여줍니다.
인코딩 설정 : mb_internal_encoding ( "UTF-8")을 사용하여 UTF-8에서 멀티 바이트 문자가 올바르게 처리되도록하십시오.
일치 정확도 : "다운로더"에서 "다운로드"를 대체하는 등 오해 교체를 피하기 위해 Word Boundary Assist Control을 사용할 수 있습니다. 예 : \ bdownload \ b .
성능 문제 : 대규모 텍스트 배치 교체의 경우 성능 오버 헤드를 평가하고 필요한 경우 /IU 모드와 결합 된 preg_replace를 사용하십시오.
다국어 환경에서는 간단한 문자열 일치로 인해 충분하지 않습니다. MB_EREGI_REPLACE 를 통해 PHP는 교체 작업을보다 안전하고 안정적인 방법을 제공합니다. 특히 유니 코드 및 케이스 감도에 관해서는 더 우아한 솔루션입니다. 이 기사의 소개와 사례가 실제 프로젝트에 더 잘 적용하는 데 도움이되기를 바랍니다.