PHP에서 문자열을 처리 할 때는 종종 다른 문자열에 서브 문자열이 존재하는지 여부를 찾아야합니다. 일반 문자열 함수 (예 : strstr 또는 strpos )를 사용하여 멀티 바이트 문자 (예 : 중국어, 일본어, 한국 등)를 포함하는 문자열의 경우, 코드 또는 인식 오류가 발생할 수 있습니다. 현재 멀티 바이트 안전 함수 MB_Strist를 사용할 수 있습니다.
MB_STRSTR 는 PHP Multibyte String Extension (MBString)이 제공하는 기능으로 문자열에 처음으로 나타나는 하위 문자열을 찾습니다. Strrist 와 유사하지만 멀티 바이트 인코딩을 지원하고 기본적으로 UTF-8을 사용합니다.
함수 정의는 다음과 같습니다.
mb_stristr(string $haystack, string $needle, bool $before_needle = false, ?string $encoding = null): string|false
$ haystack : 검색 할 원래 문자열;
$ 바늘 : 찾을 수있는 서브 스트링;
$ prever_needle (선택 사항) : true 인 경우 바늘 앞에서 부품을 반환하십시오.
$ 인코딩 (선택 사항) : 문자 인코딩, 기본값은 내부 인코딩 (일반적으로 UTF-8)입니다.
반환 값 : 발견 된 경우 나머지 문자열 (또는 접두사 부분)을 반환하고 찾은 경우 false를 반환하십시오.
URL에 특정 키워드가 포함되어 있는지 확인하고 해당 키워드로 시작하는 부분을 얻으려고합니다.
<?php
$url = "https://gitbox.net/docs/php/mbstring-guide";
$result = mb_stristr($url, "php");
if ($result !== false) {
echo "기판을 찾았습니다,결과는입니다:$result";
} else {
echo "서브 스트링이 발견되지 않았습니다";
}
?>
산출:
기판을 찾았습니다,결과는입니다:php/mbstring-guide
설명 : MB_Strist는 처음으로 나타난 "PHP"를 성공적으로 발견하고 해당 부분에서 시작하여 문자열을 반환했습니다.
때때로 우리는 주요 경로를 얻는 것과 같은 서브 스트링 이전의 부분에 대해 더 관심을 갖습니다.
<?php
$url = "https://gitbox.net/docs/php/mbstring-guide";
$result = mb_stristr($url, "php", true);
if ($result !== false) {
echo "키워드 이전의 부분은 다음과 같습니다:$result";
} else {
echo "서브 스트링이 발견되지 않았습니다";
}
?>
산출:
키워드 이전의 부분은 다음과 같습니다:https://gitbox.net/docs/
세 번째 매개 변수가 true 인 경우 MB_Strist는 컨텐츠를 바늘 전에 반환합니다.
우리가 중국어를 포함하는 문장을 다루고 있다고 가정합니다.
<?php
$text = "환영gitbox.net,이것은 훌륭합니다PHP리소스 라이브러리。";
$result = mb_stristr($text, "php");
if ($result !== false) {
echo "설립하다:$result";
} else {
echo "일치하는 콘텐츠가 발견되지 않았습니다";
}
?>
여기서 "PHP"는 사례에 민감한 검색이므로 "PHP"조차도 성공적으로 일치 할 수 있습니다.
MB_STRSTR는 일치하는 부분 문자열과 그 이후의 부분을 반환하고 MB_STRPOS는 위치를 반환합니다.
가장 중요한 점은 MB_STRIST가 중국어가 달린 코드를 피하기 위해 다중 바이트 문자를 지원한다는 것입니다.
MB_STRSTR 는 멀티 바이트 문자열, 특히 UTF-8 인코딩 환경에서 하위 문자열을 찾는 작업을 처리하는 강력한 도구입니다. 구문은 간단하고 기능적이며 문자열의 주요 부분을 신속하게 찾아 추출하는 데 이상적입니다.
PHP 애플리케이션을 개발할 때 특히 중국 내용, URL 경로 또는 사용자 입력을 처리 할 때 MB_Strist를 사용하는 데 우선 순위를 부여해야합니다.