Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP mb_ereg_replace() 함수 완벽 가이드 – 멀티바이트 문자열 정규식 치환 방법

PHP에서 mb_ereg_replace() 함수는 멀티바이트(multibyte) 문자를 지원하는 정규식 치환에 사용됩니다. 이 함수는 주어진 문자열을 검사하여 패턴과 일치하는 부분을 찾은 뒤, 해당 텍스트를 지정한 대체 문자열로 교체합니다.

일반적인 ereg_replace()와 달리 한글, 일본어, 중국어 등 멀티바이트 인코딩이 필요한 문자열도 안전하게 처리할 수 있다는 점이 큰 장점입니다.

문법 (Syntax)

string mb_ereg_replace(string $pattern, string $replacement, string $string, ?string $options = null)

매개변수 (Parameters)

mb_ereg_replace() 함수는 다음 네 가지 매개변수를 받습니다.

  • $pattern − 치환할 대상을 찾기 위한 정규식 패턴입니다. 패턴 안에 멀티바이트 문자를 사용할 수 있습니다.

  • $replacement − 패턴과 일치하는 텍스트를 대체할 문자열입니다.

  • $string − 검사 및 치환이 수행될 원본 문자열입니다.

  • $options − 검색 동작을 제어하는 옵션입니다. 예를 들어 'i' 옵션을 사용하면 대소문자를 구분하지 않고 매칭합니다.

반환값 (Return Values)

mb_ereg_replace()는 치환이 성공하면 결과 문자열을 반환하고, 오류가 발생하면 false를 반환합니다. 또한 입력된 문자열이 현재 설정된 인코딩에 유효하지 않으면 null을 반환합니다.

사용 예제

아래 예제에서는 UTF-8 인코딩을 사용합니다. mb_ereg_replace() 함수가 소문자 "h"를 대문자 "H"로 치환하여 "hello World" 대신 "Hello World"를 반환하는 과정을 확인할 수 있습니다.

<?php
   // 내부 정규식 인코딩을 UTF-8로 설정
   $result = mb_regex_encoding("UTF-8");
   
   // [h] 패턴과 일치하는 문자를 H로 치환
   $string = mb_ereg_replace("[h]", "H", "hello World");
   
   var_dump($result);

   // h가 H로 치환되어 출력됨
   echo $string;
?>

실행 결과

bool(true)
Hello World

정리

mb_ereg_replace()는 멀티바이트 환경에서 정규식 기반 문자열 치환을 처리할 때 필수적인 함수입니다. 특히 한글과 같은 다중 바이트 문자를 다루는 프로젝트에서는 일반 정규식 함수 대신 이 함수를 사용하는 것이 안전합니다. 단, PHP 7.3부터는 더 강력하고 유니코드를 완벽 지원하는 preg_replace()/u 수정자를 사용하는 방식이 권장되므로, 상황에 맞게 선택하는 것이 좋습니다.