현재 위치: > 최신 기사 목록> MB_STRISTR 기능을 사용하여 케이스 불신성 문자열 검색을 구현하는 방법은 무엇입니까?

MB_STRISTR 기능을 사용하여 케이스 불신성 문자열 검색을 구현하는 방법은 무엇입니까?

M66 2025-08-04

MB_STRISTR 기능을 사용하여 케이스 불신성 문자열 검색을 구현하는 방법은 무엇입니까?

PHP에서 문자열 조작은 매우 일반적이고 중요한 작업입니다. 보다 유연한 문자열 처리를 달성하기 위해 PHP는 많은 유용한 기능을 제공합니다. 그중 하나는 MB_STRSTR 함수로, 멀티 바이트 인코딩 된 문자열에서 하위 문자열을 찾을 수 있으며 대소 문자를 찾을 수 있습니다. 이 기능은 주로 UTF-8 또는 다른 멀티 바이트 문자 세트와 같은 문자열을 처리하는 데 사용됩니다.

1. MB_Strist 기능 소개

MB_STRSTR 는 Case Insensitive String Lookup을 수행하기위한 PHP의 멀티 바이트 버전 기능입니다. 정상 STRSTR 함수와 유사하게 MB_STRSTR은 지정된 서브 스트링이 먼저 나타나는 부분을 반환합니다. 차이점은 멀티 바이트 문자를 올바르게 처리 할 수 있다는 것입니다.

기능 프로토 타입 :

 <span><span><span class="hljs-title function_ invoke__">mb_stristr</span></span><span>(</span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$haystack</span></span><span>, </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$needle</span></span><span>, </span><span><span class="hljs-keyword">bool</span></span><span> </span><span><span class="hljs-variable">$before_needle</span></span><span> = </span><span><span class="hljs-literal">false</span></span><span>, </span><span><span class="hljs-keyword">string</span></span><span> </span><span><span class="hljs-variable">$encoding</span></span><span> = </span><span><span class="hljs-literal">null</span></span><span>): </span><span><span class="hljs-keyword">string</span></span><span>|</span><span><span class="hljs-literal">false</span></span><span>
</span></span>
  • $ haystack : 이것은 검색 할 대상 문자열입니다.

  • $ 니들 : 이것은 당신이 찾고있는 부분 문자열입니다.

  • $ prever_needle : true 로 설정되면 반환 된 문자열은 $ haystack 에서 $ beless가 처음 나타나는 곳까지 부분이됩니다. 기본값은 False 이며 $ 니들 다음에 부품을 반환합니다.

  • $ 인코딩 : 문자 인코딩을 지정합니다 (지정되지 않은 경우 기본값은 내부 문자 인코딩 설정, 일반적으로 UTF-8을 사용하는 것입니다).

2. 샘플 코드

다음은 MB_STRSTRTSTR 함수를 사용하여 사례 감수성 하위 문자열을 찾는 방법을 보여주는 간단한 예입니다.

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// 인코딩을 설정하십시오 UTF-8</span></span><span>
</span><span><span class="hljs-title function_ invoke__">mb_internal_encoding</span></span><span>(</span><span><span class="hljs-string">"UTF-8"</span></span><span>);

</span><span><span class="hljs-comment">// 대상 문자열</span></span><span>
</span><span><span class="hljs-variable">$haystack</span></span><span> = </span><span><span class="hljs-string">"Hello, 세계! Welcome to PHP."</span></span><span>;

</span><span><span class="hljs-comment">// 찾을 수있는 서브 스트링</span></span><span>
</span><span><span class="hljs-variable">$needle</span></span><span> = </span><span><span class="hljs-string">"world"</span></span><span>;

</span><span><span class="hljs-comment">// 사용 mb_stristr 기판을 찾으십시오,케이스 둔감</span></span><span>
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mb_stristr</span></span><span>(</span><span><span class="hljs-variable">$haystack</span></span><span>, </span><span><span class="hljs-variable">$needle</span></span><span>);

</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$result</span></span><span> !== </span><span><span class="hljs-literal">false</span></span><span>) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"서브 스트링이 발견되었습니다: "</span></span><span> . </span><span><span class="hljs-variable">$result</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"서브 스트링이 발견되지 않았습니다。"</span></span><span>;
}
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

설명하다:

  1. mb_internal_encoding ( "UTF-8")은 내부 문자를 UTF-8로 설정하여 멀티 바이트 스트링이 올바르게 처리되도록합니다.

  2. 우리는 mb_strstr ($ haystack, $ 니들)을 사용하여 $ haystack 에서 $ 니들을 찾습니다. MB_Strist 는 사례에 민감하지 않기 때문에 "세계"와 "세계"는 모두 일치하는 것으로 간주됩니다.

  3. 일치하는 부분 문자열이 발견되면 함수는 부품을 일치하는 위치에서 문자열 끝으로 반환합니다. 찾을 수없는 경우, false .

3. 다중 바이트 문자를 프로세스하십시오

MB_Strist 의 중요한 특징은 멀티 바이트 문자 세트 (예 : UTF-8, SJI 등)를 올바르게 처리 할 수 있다는 것입니다. 이것은 비 ASCII 문자열을 다룰 때 strrist 보다 더 신뢰할 수있게합니다.

예를 들어, 우리가 한자를 찾고 있다고 가정합니다.

 <span><span><span class="hljs-meta">&lt;?php</span></span><span>
</span><span><span class="hljs-comment">// 대상 문자열包含中文字符</span></span><span>
</span><span><span class="hljs-variable">$haystack</span></span><span> = </span><span><span class="hljs-string">"나는 프로그래밍을 좋아한다。"</span></span><span>;

</span><span><span class="hljs-comment">// 찾다"좋다"서브 스트링</span></span><span>
</span><span><span class="hljs-variable">$needle</span></span><span> = </span><span><span class="hljs-string">"좋다"</span></span><span>;

</span><span><span class="hljs-comment">// 찾다并返回匹配部分</span></span><span>
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mb_stristr</span></span><span>(</span><span><span class="hljs-variable">$haystack</span></span><span>, </span><span><span class="hljs-variable">$needle</span></span><span>);

</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$result</span></span><span> !== </span><span><span class="hljs-literal">false</span></span><span>) {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"서브 스트링이 발견되었습니다: "</span></span><span> . </span><span><span class="hljs-variable">$result</span></span><span>;
} </span><span><span class="hljs-keyword">else</span></span><span> {
    </span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"서브 스트링이 발견되지 않았습니다。"</span></span><span>;
}
</span><span><span class="hljs-meta">?&gt;</span></span><span>
</span></span>

이 예에서 MB_Strist는 멀티 바이트 문자 "Like"를 올바르게 인식하고 하위 문자에서 시작하는 후속 섹션을 반환합니다.

4. 주목할만한 것들

  • 문자 인코딩 : 특히 멀티 바이트 문자 세트를 다룰 때 $ haystack$ 니들 의 캐릭터 인코딩이 일관성이 있는지 확인하십시오. 인코딩이 일치하지 않으면 타의 추종을 불허하거나 잘못된 결과를 초래할 수 있습니다.

  • 성능 고려 사항 : 일반 Strist 기능과 비교하여 MB_Strist 의 성능은 특히 다량의 텍스트로 검색 할 때 약간 열등 할 수 있습니다. 실제 조건에 따라 고려해야합니다.

  • 원래 위치로 돌아 가지 않음 : MB_STRPOS 와 같은 함수와 달리 MB_STRSTR는 위치가 아닌 일치 지점에서 시작하는 부분 문자열을 반환합니다. 위치를 얻어야하는 경우 MB_STRPOS 또는 MB_STRRPOS (리버스 조회)를 사용할 수 있습니다.

5. 요약

MB_STRISTR 는 PHP에서 매우 유용한 기능으로, 멀티 바이트 문자 세트의 문자열에서 사례에 민감한 검색 작업을 수행 할 수 있습니다. 이 기능을 합리적으로 사용하면 UTF-8 또는 기타 인코딩 된 문자열을보다 쉽게 처리하고 유연한 문자열 일치를보다 쉽게 수행 할 수 있습니다.