PHP에서 문자열을 처리 할 때 종종 문자열에서 특정 부품을 삭제해야합니다. MB_STRSTR () 함수는 ASCII가 아닌 문자를 처리 할 때 특히 유용한 멀티 파이트 문자 세트 처리 기능입니다. 이 기사에서는 MB_STRSTRSTR () 함수를 사용하여 문자열에서 지정된 부분을 삭제하는 방법을 소개합니다.
MB_STRSTR () 은 Multibyte 문자열 함수로 일반 strstr () 함수와 유사하지만 멀티 파이트 문자 세트 (예 : UTF-8, Shift-Jis 등) 용으로 설계되었습니다. 따라서 영어가 아닌 문자를 포함하는 문자열을 처리해야 할 때 MB_strstrs ()는 더 안정적이고 신뢰할 수 있습니다.
<span><span><span class="hljs-title function_ invoke__">mb_strstr</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 로 설정된 경우 바늘 앞에서 부품을 반환하고 그렇지 않으면 바늘 후 부품을 반환하십시오.
$ 인코딩 (선택 사항) : 문자 인코딩을 지정하고 기본값은 mb_internal_encoding () 입니다.
우리가 문자열이 있고 그 일부를 삭제하고 싶다고 가정합니다. mb_strstrs () 로 부분을 찾은 다음 문자열 작업을 통해 제거 할 수 있습니다.
다음 문자열이 있다고 가정합니다.
<span><span><span class="hljs-variable">$str</span></span><span> = </span><span><span class="hljs-string">"나는 공부하는 것을 좋아합니다PHP프로그램 작성"</span></span><span>;
</span></span>"학습"부분을 삭제하고 먼저 MB_Strstrs ()를 사용 하여이 하위 문자열의 위치를 찾은 다음 해당 처리를 수행 할 수 있습니다.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$str</span></span><span> = </span><span><span class="hljs-string">"나는 공부하는 것을 좋아합니다PHP프로그램 작성"</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">// 사용mb_strstr찾다"공부하다"나타날 위치</span></span><span>
</span><span><span class="hljs-variable">$position</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mb_strstr</span></span><span>(</span><span><span class="hljs-variable">$str</span></span><span>, </span><span><span class="hljs-variable">$needle</span></span><span>);
</span><span><span class="hljs-comment">// 발견 된 경우"공부하다",이 부분을 제거하십시오</span></span><span>
</span><span><span class="hljs-keyword">if</span></span><span> (</span><span><span class="hljs-variable">$position</span></span><span> !== </span><span><span class="hljs-literal">false</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_substr</span></span><span>(</span><span><span class="hljs-variable">$str</span></span><span>, </span><span><span class="hljs-number">0</span></span><span>, </span><span><span class="hljs-title function_ invoke__">mb_strpos</span></span><span>(</span><span><span class="hljs-variable">$str</span></span><span>, </span><span><span class="hljs-variable">$needle</span></span><span>)) . </span><span><span class="hljs-title function_ invoke__">mb_substr</span></span><span>(</span><span><span class="hljs-variable">$str</span></span><span>, </span><span><span class="hljs-title function_ invoke__">mb_strpos</span></span><span>(</span><span><span class="hljs-variable">$str</span></span><span>, </span><span><span class="hljs-variable">$needle</span></span><span>) + </span><span><span class="hljs-title function_ invoke__">mb_strlen</span></span><span>(</span><span><span class="hljs-variable">$needle</span></span><span>));
</span><span><span class="hljs-keyword">echo</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">?></span></span><span>
</span></span> <span><span>좋아요PHP프로그램 작성
</span></span>서브 스트링 후 부품 만 삭제하려면 mb_strstrs () 함수의 prever_needle 매개 변수를 사용할 수 있습니다.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$str</span></span><span> = </span><span><span class="hljs-string">"나는 공부하는 것을 좋아합니다PHP프로그램 작성"</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">$before</span></span><span> = </span><span><span class="hljs-title function_ invoke__">mb_strstr</span></span><span>(</span><span><span class="hljs-variable">$str</span></span><span>, </span><span><span class="hljs-variable">$needle</span></span><span>, </span><span><span class="hljs-literal">true</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$before</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
</span></span> <span><span>좋아요
</span></span>문자열에서 여러 다른 하위 문자열을 제거 해야하는 경우 MB_STRSTR () 및 기타 문자열 조작 함수를 조합하여 사용할 수 있습니다. 루프와 정규 표현식을 통해 작업을 효율적으로 완료 할 수 있습니다.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-variable">$str</span></span><span> = </span><span><span class="hljs-string">"나는 공부하는 것을 좋아합니다PHP프로그램 작성和Web개발"</span></span><span>;
</span><span><span class="hljs-variable">$needles</span></span><span> = [</span><span><span class="hljs-string">"공부하다"</span></span><span>, </span><span><span class="hljs-string">"Web"</span></span><span>];
</span><span><span class="hljs-comment">// 다중 하위 문자열을 삭제합니다</span></span><span>
</span><span><span class="hljs-keyword">foreach</span></span><span> (</span><span><span class="hljs-variable">$needles</span></span><span> </span><span><span class="hljs-keyword">as</span></span><span> </span><span><span class="hljs-variable">$needle</span></span><span>) {
</span><span><span class="hljs-variable">$str</span></span><span> = </span><span><span class="hljs-title function_ invoke__">str_replace</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-variable">$str</span></span><span>);
}
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-variable">$str</span></span><span>;
</span><span><span class="hljs-meta">?></span></span><span>
</span></span> <span><span>좋아요PHP프로그램 작성和개발
</span></span>mb_strstrs () 는 다중 바이트 문자 세트에 최적화되었습니다. 일반적으로 중국어, 일본어, 한국 등을 포함한 캐릭터 세트를 다룰 때 일반적으로 기존의 strstr () 보다 더 잘 수행됩니다.
멀티 바이트 문자를 처리 할 때 올바른 인코딩 형식이 지정되어 있는지 확인하십시오. 그렇지 않으면 결과가 정확하지 않을 수 있습니다.
경우에 따라 mb_substr () 및 mb_strpos ()를 조합하여 사용하면 문자열의 삭제 위치를 정확하게 제어 할 수 있습니다.
mb_strstrs () 함수를 통해, 특히 다중 바이트 문자 세트 시나리오에서 문자열에서 지정된 부분을 쉽게 삭제할 수 있으며, 이는 매우 중요한 효과가 있습니다. 이러한 기술을 이해하고 마스터하면 문자열을 다룰 때 더 효율적일뿐만 아니라 일반적인 인코딩 문제를 피할 수 있습니다.