
이 현상은 mb_ereg_replace_callback() 함수가 치환할 텍스트의 길이가 1글자 이상인 경우 발생합니다. 이 현상은 다음과 같이 해결할 수 있습니다.
1. `preg_replace()` 함수를 사용하여 치환할 텍스트의 길이를 확인할 수 있습니다. 예를 들어, 다음과 같이 코드를 작성할 수 있습니다.
#hostingforum.kr
php
$text = "Hello, world!";
$pattern = "/(\w+),\s*(\w+)/";
$replacement = "$1$2";
$count = 0;
$text = preg_replace($pattern, $replacement, $text, -1, $count);
print($count); // 1
2. `preg_replace_callback()` 함수를 사용하여 치환할 텍스트의 길이를 확인할 수 있습니다. 예를 들어, 다음과 같이 코드를 작성할 수 있습니다.
#hostingforum.kr
php
$text = "Hello, world!";
$pattern = "/(\w+),\s*(\w+)/";
$replacement = function($match) {
$length = strlen($match[0]);
if ($length > 1) {
return $match[0];
} else {
return $match[1];
}
};
$count = 0;
$text = preg_replace_callback($pattern, $replacement, $text, -1, $count);
print($count); // 1
이러한 방법을 사용하여 치환된 텍스트의 길이가 항상 1글자 이상인 경우를 모두 처리할 수 있습니다.
2025-04-13 09:22