在先前的文章中我們介紹了偵測子字串是不是存在的一種方法,感興趣的可以點擊連結查看→《PHP字串學習之判斷子字串是不是存在(大小寫不敏感)》。這次我們向大家介紹檢測子字串是不是存在的另一種方法,有需要的可以參考參考。
在上一篇文章中我們介紹了使用stripos()和strripos()函數透過子字串第一次或最後一次的出現位置來判斷子字串是不是存在,但這兩個函數是對大小寫不敏感的,會不區分大小寫進行查找。
而有時我們需要精確定位,進行嚴格的偵測,就需要區分大小寫進行查找。今天我們就來了解一下。
我們來看看下面範例
<?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' 中不存在。"; } ?>
strpos()和strrpos()函數會區分大小寫的在字串$string
中尋找子字串$findme1
或$findme2
。當完全符合上,存在子字串時,會傳回子字串在字串的第一次或最後一次的出現位置;如果在字串的沒有找到子字串,則傳回FALSE
。
從上面的例子可以看出,只有子字串"bc
"和字串「ABCDCBAbcd
」是完全匹配,子字串"bc
"被認為是存在於字串「ABCDCBAbcd
」中的。因此輸出結果為:
下面我們來詳細了解strpos()和strrpos()函數。
strpos($string,$find,$start)
函數可以傳回子字串首次出現的位置(區分大小寫);
strrpos($string,$find,$start)
函數可以傳回子字串最後一次出現的位置(區分大小寫);
strpos()和strrpos()函數相似,都接受兩個必要參數$string
(被尋找的字串)和$find
(要尋找的子字串) ,一個可省略參數$start
(尋找的開始位置)。 註:字串位置起始於 0,而不是 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); ?>
輸出結果:
但strrpos()函數的參數$start
可以接受負值,當它為負數時,將會導致查找在字串結尾處開始的計數位置處結束。
<?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); ?>
輸出結果:
好了就說到這裡了,有其他想知道的,可以點擊這個哦。 → →php影片教學
最後給大家推薦閱讀一個經典課程《PHP字串處理(玉女心經版)》,免費的~快來學習啊!
以上是PHP字串學習檢測子字串是不是存在(大小寫敏感)的詳細內容。更多資訊請關注PHP中文網其他相關文章!