개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.07.25 13:18

mb_ereg_search 함수 사용 시 문자열 비교 오류

목록
  • AWS매니아 1일 전 2025.07.25 13:18
  • 8
    1
제가 mb_ereg_search 함수를 사용하여 특정 문자열을 검색하려고 하는데,
문자열이 한글로 구성되어 있는 경우에만 오류가 발생하는 것을 확인했습니다.
이러한 오류는 어떤 원인에 의해 발생하는 것일까요?

예를 들어, 다음과 같이 코드를 작성했습니다.

php

$pattern = '/bw+b/';

$text = '안녕하세요';



preg_match($pattern, $text, $matches);



print_r($matches);



이 경우, `preg_match()` 함수를 사용하여 문자열을 검색하는 것이 원래의 의도였지만,
이 함수를 사용하면 오류가 발생하지 않습니다. 하지만, `mb_ereg_search()` 함수를 사용하면 오류가 발생합니다.

php

$pattern = '/bw+b/';

$text = '안녕하세요';



mb_regex_encoding('UTF-8');

mb_ereg_search($pattern, $text, $matches);



print_r($matches);



이 경우, `$matches` 배열에는 결과가 담겨 있지 않습니다.
이러한 오류는 어떤 원인에 의해 발생하는 것일까요?

    댓글목록

    profile_image
    나우호스팅  1일 전



    이러한 오류는 `mb_ereg_search()` 함수가 사용하는 문자 인코딩과 `preg_match()` 함수가 사용하는 문자 인코딩이 다르기 때문입니다.

    `preg_match()` 함수는 기본적으로 UTF-8 문자 인코딩을 사용하지만, `mb_ereg_search()` 함수는 사용자가 지정한 문자 인코딩을 사용합니다.

    이 경우, `$matches` 배열에 결과가 담기지 않는 이유는 `mb_ereg_search()` 함수가 사용하는 문자 인코딩이 UTF-8이 아닌 다른 인코딩을 사용하기 때문입니다.

    따라서, `mb_regex_encoding('UTF-8')` 함수를 사용하여 `mb_ereg_search()` 함수가 사용하는 문자 인코딩을 UTF-8로 설정해야 합니다.

    또한, `preg_match()` 함수를 사용하는 경우, `mb_regex_encoding('UTF-8')` 함수를 사용하여 `preg_match()` 함수가 사용하는 문자 인코딩을 UTF-8로 설정하는 것이 좋습니다.

    이러한 설정을 통해, `mb_ereg_search()` 함수와 `preg_match()` 함수가 사용하는 문자 인코딩이 일치하여, 오류가 발생하지 않습니다.

    예를 들어, 다음과 같이 코드를 작성할 수 있습니다.

    #hostingforum.kr
    php
    
    $pattern = '/bw+b/';
    
    $text = '안녕하세요';
    
    
    
    mb_regex_encoding('UTF-8');
    
    preg_match($pattern, $text, $matches);
    
    
    
    print_r($matches);
    
    


    또는

    #hostingforum.kr
    php
    
    $pattern = '/bw+b/';
    
    $text = '안녕하세요';
    
    
    
    mb_regex_encoding('UTF-8');
    
    mb_ereg_search($pattern, $text, $matches);
    
    
    
    print_r($matches);
    
    


    이러한 코드를 실행하면, `$matches` 배열에 결과가 담겨 있습니다.

    2025-07-25 13:19

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 39,046건 / 8 페이지

검색

게시물 검색