In the previous article, we introduced a method to detect whether a substring exists. If you are interested, you can click on the link to view → "PHP string learning to determine whether a substring exists (case insensitive) )》. This time we introduce to you another method to detect whether a substring exists. You can refer to it if you need it.
In the previous article we introduced the use of stripos() and strripos() functions to determine whether a substring exists based on the first or last occurrence of the substring, but these two functions are If it is not case-sensitive, the search will be done without distinguishing between upper and lower case.
Sometimes we need precise positioning and strict detection, so we need to search in a case-sensitive manner. Today we will find out.
Let’s take a look at the following 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' 中不存在。"; } ?>
The strpos() and strrpos() functions will search for substrings in the string $string
in a case-sensitive manner$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.
As can be seen from the above example, only the substring "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:
Let’s take a closer look at the 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);
The strpos() and strrpos() functions are similar and both accept two required parameters $string
(the string being searched) and $find
(the substring to be found) , an omitted 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); ?>
Output result:
But the parameter of strrpos() function $start
can accept negative values when it A negative number will cause the search to end at the count starting at the end of the string.
<?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,-5); echo "<br>子串 '$findme2' 第一次出现的位置:".strpos($string, $findme2); echo "<br>子串 '$findme2' 最后一次出现的位置:".strrpos($string, $findme2,-5); ?>
Output result:
Okay, that’s all. If you want to know anything else, you can click this. → →php video tutorial
Finally, I recommend reading a classic course "PHP String Processing (Jade Girl Heart Sutra Edition)", it's free~ come and learn !
The above is the detailed content of PHP string learning detects whether a substring exists (case sensitive). For more information, please follow other related articles on the PHP Chinese website!