현재 위치: > 최신 기사 목록> MB_EREGI_REPLAPE 대신 preg_replace ()를 사용하여보다 복잡한 유니 코드 일치를 달성하십시오.

MB_EREGI_REPLAPE 대신 preg_replace ()를 사용하여보다 복잡한 유니 코드 일치를 달성하십시오.

M66 2025-06-02

PHP 7.0 이후에서 MB_EREGI_REPLACE ()는 공식적으로 더 이상 사용되지 않았으며 PHP 7.1 이후에 완전히 제거되었습니다. 이것은 다중 바이트 문자열의 정기적 인 교체에 의존하는 많은 개발자들을 괴롭 혔습니다. 특히 유니 코드 문자열 (예 : 중국어, 일본어 등)의 사례에 민감한 대체가 필요할 때 특히 동등하고 강력한 대안을 찾는 것이 특히 중요합니다.

다행스럽게도 PHP의 preg_replace () 함수는 올바른 수정 자 및 유니 코드 지원과 결합하여 MB_EREGI_REPLACE () 보다 훨씬 더 구현할 수 있습니다. 이 기사는 점차 MB_EREGI_REPLACE ( )를 preg_replace ()로 완벽하게 대체하고 강력한 유니 코드 정규 일치하는 방법을 점차적으로 소개합니다.

mb_eregi_replace ()가 더 이상 사용되지 않는 이유는 무엇입니까?

MB_EREGI_REPLACE () 는 MPSTRING (Multibyte String)에서 사례에 민감한 일반 대체 기능입니다. 그러나 문제는 다음과 같습니다.

  • 구문은 오래되었으며 Perl 스타일 규칙을 지원하지 않습니다.

  • 성능 저하.

  • 최신 유니 코드, 제한된 처리 용량 및 높은 유지 보수 비용.

따라서보다 현대적이고 기능이 풍부한 preg_replace ()를 사용하는 것이 좋습니다.

mb_eregi_replace () 대신 preg_replace () 를 사용하십시오.

기본 사용

우리가 사용했다고 가정합니다.

 mb_eregi_replace("시험", "바꾸다", $text);

우리는 다음과 같이 다시 쓸 수 있습니다.

 preg_replace("/시험/ui", "바꾸다", $text);

여기서 U 수정자는 유니 코드 모드를 켜는 것을 의미 하며 상단 및 소문자를 무시하는 것을 의미합니다.

예 : 문자열의 중국어 키워드를 교체하십시오

우리가 텍스트 단락에서 모든 "사과"를 "바나나"로 교체하고 싶다고 가정 해 봅시다.

 $text = "내가 가장 좋아하는 사과,그리고 사과 주스。";
$result = preg_replace("/사과/ui", "바나나", $text);
echo $result;

산출:

 我最喜欢吃바나나,还有바나나汁。

예 : URL에서 특정 유니 코드 매개 변수를 교체하십시오

URL에서 유니 코드 매개 변수를 교체하는 것을 고려하십시오 (예 : 중국 태그).

 $url = "https://m66.net/search?q=사과手机";
$replaced = preg_replace("/사과/ui", "바나나", $url);
echo $replaced;

산출:

 https://m66.net/search?q=바나나手机

보시다시피, preg_replace ()는 유니 코드를 포함하는 URL을 처리 할 수도 있습니다.

더 복잡한 정기 교체

"Apple Phone", "Apple Computer", "Apple Pie"등과 같은 더 많은 변형을 일치 시키려면 더 복잡한 정규 표현식을 사용할 수 있습니다.

 $text = "我有一台사과컴퓨터,也吃了사과그룹。";
$pattern = "/사과(컴퓨터|그룹)?/ui";
$replacement = "바나나";
$result = preg_replace($pattern, $replacement, $text);
echo $result;

산출:

 我有一台바나나,也吃了바나나。

주목해야 할 것

  • Unicode 모드를 활성화하려면 항상 U 수정자를 추가해야합니다.

  • preg_replace ()는 보다 복잡한 일반 구문 (예 : 어설 션, 이름 그룹 등)을 지원하며 mb_eregi_replace () 보다 유연합니다.

  • 대체 콘텐츠에 BackSlash ( \ ) 또는 Dollar Sign ( $ )이 포함 된 경우 Preg_Quote () 또는 이중 인용구에서 탈출 프로세스를 사용하십시오.

요약

더 이상 사용되지 않은 MB_EREGI_REPLACE ()는 불편할 수 있지만 preg_replace ()는 완벽한 대안 일뿐 만 아니라보다 강력한 유니 코드 정규 지원을 제공합니다. UI 수정 자 사용을 마스터하는 한 멀티 바이트 문자 교체 요구 사항을 쉽게 처리 할 수 ​​있습니다.

보다 복잡한 유니 코드 패턴 매칭을 처리 해야하는 경우 PHP 정규 세계에서 더 많은 가능성을 잠금 해제하기 위해 PCRE 정규 표현식의 구문 및 기능에 대해 자세히 알아볼 수 있습니다.