>백엔드 개발 >PHP 튜토리얼 >하위 문자열이 존재하는지 확인하는 PHP 문자열 학습(대소문자 구분 안 함)

하위 문자열이 존재하는지 확인하는 PHP 문자열 학습(대소문자 구분 안 함)

青灯夜游
青灯夜游원래의
2021-08-05 12:12:072516검색

문자열 비교와 검색은 가장 일반적인 작업입니다. 이전 기사 "PHP 문자열 학습: 두 문자열 비교"에서 문자열을 비교하는 방법을 소개했습니다. 다음 문서에서는 문자열 검색 작업을 안내하고 하위 문자열이 존재하는지 확인하는 방법을 소개합니다.

문자열 검색 작업을 수행할 때 특정 문자열에 지정된 하위 문자열(하위 문자열이라고 함)을 찾아서 해당 하위 문자열이 이 문자열에 존재하는지 확인해야 하는 경우가 있습니다.

우리는 일반적으로 PHP 내장 함수를 사용하여 문자열에서 이 하위 문자열이 처음 또는 마지막으로 나타나는 것을 찾아 판단합니다. 문자열 검색에는 두 가지 상황이 있습니다. 하나는 대소문자를 구분하지 않는 검색이고, 다른 하나는 대소문자를 구분하는 검색입니다. 이제 대소문자를 구분하지 않고 하위 문자열이 존재하는지 확인하는 방법을 살펴보겠습니다.

아래 밤을 살펴보겠습니다.

<?php
header("Content-type:text/html;charset=utf-8");
$string = "ABCDCBAbcd";
$findme = "bC";
echo "子串  “&#39;$findme&#39;” 第一次出现的位置:".stripos($string, $findme);
echo "<br>子串  “&#39;$findme&#39;” 最后一次出现的位置:".strripos($string, $findme);
?>

위 예시의 코드를 보시면, 결과가 어떻게 될 것 같나요? 첫 번째 발생은 "2"이고 마지막 발생은 "8"입니다. 맞나요? 출력을 살펴보겠습니다.

하위 문자열이 존재하는지 확인하는 PHP 문자열 학습(대소문자 구분 안 함)

앗, 실제로는 "1"과 "7"입니다. 왜 이런가요? 그 이유는 문자열 위치가 1이 아닌 0부터 시작하기 때문입니다. 물론 시작 위치 1을 기준으로 계산하는 것은 잘못된 것입니다.

따라서 다음 코드를 사용하여 하위 문자열이 존재하는지 확인할 수 있습니다.

<?php
header("Content-type:text/html;charset=utf-8");
$string = "ABCDCBAbcd";
$findme = "bC";

if(stripos($string, $findme)!=FALSE){
	echo "子串  “&#39;$findme&#39;” 在字符串  “&#39;$string&#39;” 中存在。";
}else{
	echo "子串  “&#39;$findme&#39;” 在字符串  “&#39;$string&#39;” 中不存在。";
}

if(strripos($string, $findme)!=FALSE){
	echo "<br>子串  “&#39;$findme&#39;” 在字符串  “&#39;$string&#39;” 中存在。";
}else{
	echo "<br>子串  “&#39;$findme&#39;” 在字符串  “&#39;$string&#39;” 中不存在。";
}
?>

출력 결과:

하위 문자열이 존재하는지 확인하는 PHP 문자열 학습(대소문자 구분 안 함)

이 두 함수를 자세히 살펴보겠습니다.

stripos($string,$find,$start) 함수는 다른 문자열에서 처음 나타나는 문자열을 찾을 수 있습니다(대소문자를 구분하지 않음). stripos($string,$find,$start)函数可以查找字符串在另一字符串中第一次出现的位置(不区分大小写)。

strripos($string,$find,$start)函数可以查找字符串在另一字符串中最后一次出现的位置(不区分大小写)。

这两个函数的参数是相似的,都接受两个必需参数$string$find,一个可省略参数$start

  • $string参数:用于指定要被查找的字符串。

  • $find参数:用于指定要查找的子串,可以包含一个或者多字符。(如果不是字符串类型,那么它将被转换为整型并被视为字符顺序值)。

  • $start参数:用于指定从$string 中的哪个字符开始查找,返回的位置数字值仍然相对于 $string 的起始位置。

但strripos()函数的$start参数允许使用负值,此时将使得查找从字符串的起始位置开始,到 $start

strripos($string,$find,$start) 함수는 다른 문자열에서 마지막으로 나타나는 문자열을 찾을 수 있습니다(대소문자를 구분하지 않음).

이 두 함수의 매개변수는 유사합니다. 두 가지 필수 매개변수 $string$find와 생략된 매개변수 $start를 허용합니다. .

  • 하위 문자열이 존재하는지 확인하는 PHP 문자열 학습(대소문자 구분 안 함)$string 매개변수: 찾을 문자열을 지정하는 데 사용됩니다.
  • $find 매개변수: 찾을 하위 문자열을 지정하는 데 사용되며 하나 이상의 문자를 포함할 수 있습니다. (문자열 타입이 아닌 경우 정수로 변환되어 문자순의 값으로 처리됩니다.)

  • $start 매개변수: $string에서 검색을 시작할 문자를 지정하는 데 사용됩니다. 반환된 위치 숫자 값은 여전히 ​​$string의 시작 위치.

그러나 strripos() 함수의 $start 매개변수는 음수 값을 허용하므로 문자열의 시작 부분부터 까지 검색이 시작됩니다. $ 시작 위치.

<?php
header("Content-type:text/html;charset=utf-8");
$string = "ABCDCBAbcd";
$findme = "bC";
echo "子串  “&#39;$findme&#39;” 第一次出现的位置:".stripos($string, $findme,2);
echo "<br>子串  “&#39;$findme&#39;” 最后一次出现的位置:".strripos($string, $findme,-5);
?>
출력 결과:

🎜🎜🎜🎜그렇습니다. 더 알고 싶다면 여기를 클릭하세요. → →🎜php 비디오 튜토리얼🎜🎜🎜마지막으로 클래식 강좌인 "🎜PHP 문자열 처리(옥소녀심경편)🎜"을 읽어보시길 추천합니다. 무료입니다~ 와서 배워보세요! 🎜

위 내용은 하위 문자열이 존재하는지 확인하는 PHP 문자열 학습(대소문자 구분 안 함)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.