>백엔드 개발 >PHP 문제 >PHP에 하위 문자열이 있는지 확인하는 방법

PHP에 하위 문자열이 있는지 확인하는 방법

青灯夜游
青灯夜游원래의
2022-10-13 18:42:483709검색

4가지 방법: 1. "stripos($str,$find)" 구문으로 부분 문자열의 발생 위치를 찾기 위해 Stripos()를 사용합니다. 2. 부분 문자열의 발생 위치를 찾기 위해 strripos()를 사용합니다. "strripos($ str,$find)"; 3. strpos()를 사용하여 하위 문자열의 발생 위치를 찾습니다. 구문 "strpos($str,$find)" 4. strrpos()를 사용하여 발생 위치를 찾습니다. 하위 문자열의 구문은 "strrpos($ str,$find)"입니다.

PHP에 하위 문자열이 있는지 확인하는 방법

이 튜토리얼의 운영 환경: Windows 7 시스템, PHP 버전 8.1, DELL G3 컴퓨터

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

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

케이스 1: 하위 문자열이 존재하는지 확인(대소문자 구분 안 함)

대소문자를 구분하지 않고 하위 문자열이 존재하는지 감지하려면 Stripos() 및 strripos() 함수를 사용해야 합니다.

stripos() 및 strripos() 함수 모두 대소문자를 구분하지 않고 지정된 하위 문자열의 발생 위치를 확인할 수 있습니다. 반환 값이 FALSE이면 지정된 하위 문자열이 존재하지 않습니다.

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

<?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() 및 strripos() 함수

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

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

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

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

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

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

情况2:检测子串是不是存在(大小写敏感)

大小写敏感的检测子串是不是存在,需要使用strpos()和strrpos()函数。

strpos()和strrpos()函数可以大小写敏感的检查指定子串的出现位置,如果返回值为FALSE,则指定子串不存在。

示例:

<?php
header("Content-type:text/html;charset=utf-8");
$string = "ABCDCBAbcd";
$findme1 = "bC";
$findme2 = "bc";
$pos1 = strpos($string, $findme1);
$pos2 = strrpos($string, $findme1);
$pos3 = strpos($string, $findme2);
$pos4 = strrpos($string, $findme2);

if($pos1 !=FALSE){
	echo "子串 &#39;$findme1&#39; 在字符串  &#39;$string&#39; 中存在。";
}else{
	echo "子串  &#39;$findme1&#39; 在字符串  &#39;$string&#39; 中不存在。";
}

if($pos2 !=FALSE){
	echo "<br>子串  &#39;$findme1&#39; 在字符串  &#39;$string&#39; 中存在。";
}else{
	echo "<br>子串  &#39;$findme1&#39; 在字符串  &#39;$string&#39; 中不存在。";
}
if($pos3 !=FALSE){
	echo "<br>子串  &#39;$findme2&#39; 在字符串  &#39;$string&#39; 中存在。";
}else{
	echo "<br>子串  &#39;$findme2&#39; 在字符串  &#39;$string&#39; 中不存在。";
}

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

strpos()和strrpos()函数会区分大小写的在字符串$string中查找子串$findme1或者$findme2。当完全匹配上,存在子串时,会返回子串在字符串的第一次或最后一次的出现位置;如果在字符串的没有找到子串,则返回FALSE

从上面的例子可以看出,只有子串"bc"和字符串“ABCDCBAbcd”是完全匹配,子串"bc"被认为是存在于字符串“ABCDCBAbcd”中的。因此输出结果为:

PHP에 하위 문자열이 있는지 확인하는 방법

说明:strpos()和strrpos()函数

  • strpos($string,$find,$start)函数可以返回子字符串首次出现的位置(区分大小写);

  • strrpos($string,$find,$start)函数可以返回子字符串最后一次出现的位置(区分大小写);

strpos()和strrpos()函数相似,都接受两个必需参数$string(被查找的字符串)和$find(要查找的子串),一个可省略参数$startstrripos($string,$find,$start) 함수는 다른 문자열에서 마지막으로 나타나는 문자열을 찾을 수 있습니다(대소문자 구분 없음).

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

  • $string 매개변수: 찾을 문자열을 지정하는 데 사용됩니다.

  • PHP에 하위 문자열이 있는지 확인하는 방법$find 매개변수: 찾을 하위 문자열을 지정하는 데 사용되며 하나 이상의 문자를 포함할 수 있습니다. (문자열 타입이 아닌 경우 정수로 변환되어 문자순의 값으로 처리됩니다.)
  • $start 매개변수: $string에서 검색을 시작할 문자를 지정하는 데 사용됩니다. 반환된 위치 숫자 값은 여전히 ​​$string의 시작 위치.

🎜Case 2: 하위 문자열이 존재하는지 감지(대소문자 구분) 🎜🎜🎜🎜 하위 문자열이 대소문자를 구분하여 존재하는지 감지하려면 strpos() 및 strrpos() 함수를 사용해야 합니다. . 🎜🎜strpos() 및 strrpos() 함수는 대소문자를 구분하여 지정된 하위 문자열의 발생 위치를 확인할 수 있습니다. 반환 값이 FALSE인 경우 지정된 하위 문자열이 존재하지 않습니다. 🎜🎜예: 🎜
<?php
header("Content-type:text/html;charset=utf-8");
$string = "ABCabcabcABC";
$findme1 = "c";
$findme2 = "C";
echo "子串  &#39;$findme1&#39; 第一次出现的位置:".strpos($string, $findme1);
echo "<br>子串  &#39;$findme1&#39; 最后一次出现的位置:".strrpos($string, $findme1);
echo "<br>子串  &#39;$findme2&#39; 第一次出现的位置:".strpos($string, $findme2);
echo "<br>子串  &#39;$findme2&#39; 最后一次出现的位置:".strrpos($string, $findme2);
?>
🎜strpos() 및 strrpos() 함수는 문자열 $string에서 하위 문자열 $findme1 또는 $를 대소문자를 구분하여 findme2. 정확히 일치하는 항목이 있고 하위 문자열이 존재하는 경우 문자열에서 해당 하위 문자열이 처음 또는 마지막으로 나타나는 경우가 반환됩니다. 하위 문자열이 문자열에서 발견되지 않으면 <code>FALSE가 반환됩니다. 🎜🎜위의 예에서 볼 수 있듯이 하위 문자열 "bc"와 문자열 "ABCDCBAbcd"만 완전히 일치하고 하위 문자열 "bc" >"는 "<code>ABCDCBAbcd" 문자열에 있는 것으로 간주됩니다. 따라서 출력 결과는 다음과 같습니다. 🎜🎜PHP에 하위 문자열이 있는지 확인하는 방법 🎜🎜🎜설명: strpos() 및 strrpos() 함수🎜🎜
  • 🎜strpos($string,$find,$start ) 함수는 하위 문자열이 처음 나타나는 위치를 반환할 수 있습니다(대소문자 구분). 🎜
  • 🎜strrpos($string,$find,$start) 함수는 하위 문자열의 마지막 발생 위치를 반환할 수 있습니다(대소문자 구분). 🎜
🎜strpos() 및 strrpos() 함수는 유사하며 둘 다 두 개의 필수 매개 변수를 허용합니다. $string(찾을 문자열) 및 <code>$find(찾을 하위 문자열) 및 선택적 매개변수 $start(검색 시작 위치). 🎜참고: 문자열 위치는 1이 아닌 0에서 시작합니다. 🎜🎜rrreee🎜출력 결과: 🎜🎜🎜🎜🎜권장 학습: "🎜PHP 비디오 튜토리얼🎜"🎜

위 내용은 PHP에 하위 문자열이 있는지 확인하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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