Code/PHP
preg_replace 등에서 유니코드 처리, 이스케이핑
codens
2024. 8. 27. 13:18
preg_match, preg_match_all, preg_replace 는 패턴의 [] 안에 유니코드가 있는 경우 /u flag가 없으면 에러
ex)
$str = "123가나123";
$pat = "/[가]/"; // 결과 문자열이 깨짐
$pat = "/가/"; // 결과 문자열 정상, []안에 쓰지 않으면 u flag를 안써도 정상
$pat = "/[가]/u"; // u flag를 써야 문자열이 정상
$ret = preg_replace($pat, "@", $str, 2, $count);
//-----------------------------------------------------------------------------
문자열을 패턴에 넣어서 검색시 특수문자 이스케이핑
$search = '/' . preg_quote($search, '/') . '/u';
preg_replace($search, $replace, $subject, 1);
반응형