4 methods: 1. Use stripos() to find the occurrence position of the substring, the syntax "stripos($str,$find)"; 2. Use strripos() to find the occurrence position of the substring, the syntax "strripos($str,$find)"; 3. Use strpos() to find the occurrence position of a substring, the syntax is "strpos($str,$find)"; 4. Use strrpos() to find the occurrence position of a substring, the syntax "strrpos($str,$find)".
The operating environment of this tutorial: Windows 7 system, PHP version 8.1, DELL G3 computer
When performing a string search operation, sometimes It is required to find a specified substring (substring for short) in a certain string to see if the substring exists in this string.
We generally use PHP built-in functions to find the first or last occurrence of this substring in the string to make a judgment. There are two situations for searching strings: one is case-insensitive, that is, case-insensitive search; the other is case-sensitive, that is, case-sensitive search.
Case 1: Determine whether the substring exists (case insensitive)
Case insensitive detection of whether the substring exists , you need to use the stripos() and strripos() functions.
Both the stripos() and strripos() functions can check the occurrence position of the specified substring in a case-insensitive manner. If the return value is FALSE, the specified substring does not exist.
So we can use the following code to determine whether the substring exists
<?php header("Content-type:text/html;charset=utf-8"); $string = "ABCDCBAbcd"; $findme = "bC"; if(stripos($string, $findme)!=FALSE){ echo "子串 “'$findme'” 在字符串 “'$string'” 中存在。"; }else{ echo "子串 “'$findme'” 在字符串 “'$string'” 中不存在。"; } if(strripos($string, $findme)!=FALSE){ echo "<br>子串 “'$findme'” 在字符串 “'$string'” 中存在。"; }else{ echo "<br>子串 “'$findme'” 在字符串 “'$string'” 中不存在。"; } ?>
Output result:
Explanation: stripos() and strripos() functions
stripos($string,$find,$start)
The function can find the first occurrence of a string in another string Location (not case sensitive).
strripos($string,$find,$start)
The function can find the last occurrence of a string in another string (case-insensitive).
The parameters of these two functions are similar. They both accept two required parameters $string
and $find
, and one optional parameter $start
.
$string
Parameter: used to specify the string to be found.
$find
Parameter: used to specify the substring to be found, which can contain one or more characters. (If it is not a string type, it is converted to an integer and treated as a character-ordered value).
$start
Parameter: used to specify which character in $string
to start searching from. The returned positional numerical value is still relative to # The starting position of ##$string.
Case 2: Detect whether the substring exists (case sensitive)
Case sensitive detector Whether the string exists, you need to use the strpos() and strrpos() functions. The strpos() and strrpos() functions can check the occurrence position of the specified substring in a case-sensitive manner. If the return value is FALSE, the specified substring does not exist. Example:<?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 "子串 '$findme1' 在字符串 '$string' 中存在。"; }else{ echo "子串 '$findme1' 在字符串 '$string' 中不存在。"; } if($pos2 !=FALSE){ echo "<br>子串 '$findme1' 在字符串 '$string' 中存在。"; }else{ echo "<br>子串 '$findme1' 在字符串 '$string' 中不存在。"; } if($pos3 !=FALSE){ echo "<br>子串 '$findme2' 在字符串 '$string' 中存在。"; }else{ echo "<br>子串 '$findme2' 在字符串 '$string' 中不存在。"; } if($pos4 !=FALSE){ echo "<br>子串 '$findme2' 在字符串 '$string' 中存在。"; }else{ echo "<br>子串 '$findme2' 在字符串 '$string' 中不存在。"; } ?>
$string$findme1
or
$findme2. When there is an exact match and a substring exists, the first or last occurrence of the substring in the string will be returned; if the substring is not found in the string,
FALSE will be returned.
bc" and the string "
ABCDCBAbcd" are completely matched, and the substring "
bc" is considered to exist in the string "
ABCDCBAbcd". Therefore, the output result is:
Description: strpos() and strrpos() functions
strpos($string,$find,$start)The function can return the position where the substring first appears (case-sensitive);
strrpos($string ,$find,$start)The function can return the position of the last occurrence of the substring (case-sensitive);
$string (the string being searched) and
$find (the substring to be found), and one optional parameter
$start ( the starting position of the search).
Note: The string position starts at 0, not 1.
<?php header("Content-type:text/html;charset=utf-8"); $string = "ABCabcabcABC"; $findme1 = "c"; $findme2 = "C"; echo "子串 '$findme1' 第一次出现的位置:".strpos($string, $findme1); echo "<br>子串 '$findme1' 最后一次出现的位置:".strrpos($string, $findme1); echo "<br>子串 '$findme2' 第一次出现的位置:".strpos($string, $findme2); echo "<br>子串 '$findme2' 最后一次出现的位置:".strrpos($string, $findme2); ?>
PHP Video Tutorial"
The above is the detailed content of How to detect whether substring exists in php. For more information, please follow other related articles on the PHP Chinese website!