
이 문제는 mb_eregi 함수의 사용법과 멀티바이트 문자열의 처리에 관련된 문제입니다.
mb_eregi 함수는 멀티바이트 문자열에서 패턴을 찾기 위해 사용되지만, 기본적으로 패턴은 단일바이트 문자열로 처리됩니다.
따라서, 멀티바이트 문자열에서 패턴을 찾으려면 mb_eregi 함수의 패턴 매개변수를 멀티바이트 문자열로 설정해야 합니다.
예를 들어, 다음과 같이 패턴을 멀티바이트 문자열로 설정할 수 있습니다.
#hostingforum.kr
php
$pattern = 'abc';
$text = 'abc123abc';
if (mb_eregi($pattern, $text)) {
echo '패턴이 발견되었습니다.';
} else {
echo '패턴이 발견되지 않았습니다.';
}
위 코드는 'abc'를 찾을 수 있습니다.
또한, mb_eregi 함수는 문자열의 위치를 반환하지 않습니다. 따라서, 패턴이 여러 번 발견되더라도, 함수는 항상 TRUE를 반환합니다.
이 문제를 해결하기 위해, mb_eregi 함수를 사용하는 대신, preg_match_all 함수를 사용할 수 있습니다.
preg_match_all 함수는 멀티바이트 문자열에서 패턴을 찾을 수 있습니다.
예를 들어, 다음과 같이 preg_match_all 함수를 사용할 수 있습니다.
#hostingforum.kr
php
$pattern = '/abc/';
$text = 'abc123abc';
preg_match_all($pattern, $text, $matches);
if (!empty($matches[0])) {
echo '패턴이 발견되었습니다.';
} else {
echo '패턴이 발견되지 않았습니다.';
}
위 코드는 'abc'를 찾을 수 있습니다.
또한, preg_match_all 함수는 패턴이 여러 번 발견되면, 모든 위치를 반환합니다.
이러한 이유로, preg_match_all 함수를 사용하는 것이 더 유용합니다.
2025-07-30 17:37