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 수정자를 사용하는 방식이 권장되므로, 상황에 맞게 선택하는 것이 좋습니다.