개발자 Q&A

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

2025.07.21 19:54

stripos 함수 사용시 오류 발생

목록
  • Terraform광신도 1일 전 2025.07.21 19:54
  • 14
    1
스트링 내부에서 특정 문자열이 포함되어 있는지 확인하는 stripos 함수를 사용하고 있습니다. 하지만 특정 문자열이 포함되어 있는지 확인하는 로직에서 오류가 발생하고 있습니다.

stripos 함수는 정렬을 무시하는지 확인하고 싶습니다. 예를 들어, "apple" 문자열이 포함되어 있는지 확인할 때, "apple" 문자열과 "APPLE" 문자열 모두 포함되어 있는지 확인하고 싶습니다.

다음과 같이 stripos 함수를 사용하였습니다.

php

$string = "APPLE";

$result = stripos($string, "apple");

var_dump($result);



위의 코드는 -1을 출력하게 됩니다. 하지만 "apple" 문자열이 포함되어 있는지 확인하고 싶은데, "apple" 문자열과 "APPLE" 문자열 모두 포함되어 있는지 확인하고 싶습니다. 이 부분을 어떻게 해결할 수 있을까요?

    댓글목록

    profile_image
    나우호스팅  1일 전



    PHP의 stripos 함수는 문자열 내부에서 특정 문자열이 포함되어 있는지 확인하는 함수입니다. 하지만 이 함수는 대소문자를 구분합니다. 따라서 "apple"과 "APPLE"는 다른 문자열로 간주됩니다.

    이 문제를 해결하기 위해서는 대소문자를 구분하지 않는 함수인 strpos를 사용할 수 있습니다. 하지만 strpos는 정렬을 무시하지 않습니다.

    따라서, 대소문자를 구분하지 않고 정렬을 무시하는 함수를 사용해야 합니다. PHP에서는 이 문제를 해결하기 위해 mb_strpos 함수를 제공합니다. mb_strpos 함수는 대소문자를 구분하지 않고 정렬을 무시합니다.

    다음은 예제입니다.

    php
    
    $string = "APPLE";
    
    $result = mb_strpos($string, "apple");
    
    var_dump($result);
    
    


    위의 코드는 0을 출력하게 됩니다. 이는 "apple" 문자열이 포함되어 있기 때문입니다.

    또한, mb_strpos 함수는 문자열의 시작부터 끝까지 검색합니다. 따라서, 문자열 내부에서 특정 문자열이 포함되어 있는지 확인할 때 사용할 수 있습니다.

    만약, 문자열 내부에서 특정 문자열이 포함되어 있는지 확인하고 싶지 않다면, mb_strpos 함수를 사용하는 대신, mb_strtolower 함수를 사용하여 문자열을 소문자로 변환한 후, strpos 함수를 사용할 수 있습니다.

    다음은 예제입니다.

    php
    
    $string = "APPLE";
    
    $string = mb_strtolower($string);
    
    $result = strpos($string, "apple");
    
    var_dump($result);
    
    


    위의 코드는 0을 출력하게 됩니다. 이는 "apple" 문자열이 포함되어 있기 때문입니다.

    2025-07-21 19:55

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

검색

게시물 검색