字串的比較和查找是最常見的操作,在先前的文章《PHP字串學習之比較兩個字串》中,我們介紹了比較字串的方法。以下這篇文章帶大家了解字串查找操作,介紹一下檢查子字串是否存在的方法。
在進行字串查找操作時,有時會要求在某一字串中尋找指定的子字串(簡稱子字串),看看該子字串是否存在於這個字串中。
我們一般會透過使用PHP內建函數來找出這個子字串在字串的第一次或最後一次的出現位置來進行判斷。而查找字串有兩種情況:一種是對大小寫不敏感,即不區分大小寫的查找;另一種是對大小寫敏感,即區分大小寫的查找。下面我們就來看看看不區分大小寫要如何判斷子字串是不是存在。
我們來看看下面一下栗子。
<?php header("Content-type:text/html;charset=utf-8"); $string = "ABCDCBAbcd"; $findme = "bC"; echo "子串 “'$findme'” 第一次出现的位置:".stripos($string, $findme); echo "<br>子串 “'$findme'” 最后一次出现的位置:".strripos($string, $findme); ?>
看看上例的程式碼,你們覺得這個結果會是什麼?第一次出現的位置為“2”,最後一次出現的位置為“8”,對不對?我們來看看輸出結果:
哎呀,居然是“1”和“7”,為什麼會這樣?原因是:字串位置起始於 0,而不是 1。我們按起始位置1來算當然不對。
因此我們就可以使用以下程式碼來判斷子字串是否存在
<?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'” 中不存在。"; } ?>
輸出結果:
下面我們具體看看這兩個函數吧。
stripos($string,$find,$start)
函數可以找出字串在另一個字串中第一次出現的位置(不區分大小寫)。
strripos($string,$find,$start)
函數可以找出字串在另一個字串中最後一次出現的位置(不區分大小寫)。
這兩個函數的參數是相似的,都接受兩個必要參數$string
和$find
,一個可省略參數$start
。
$string
參數:用於指定要被尋找的字串。
$find
參數:用於指定要尋找的子字串,可以包含一個或多字元。 (如果不是字串類型,那麼它將被轉換為整數並被視為字元順序值)。
$start
參數:用於指定從$string
中的哪個字元開始查找,傳回的位置數字值仍然相對於$string
的起始位置。
但strripos()函數的$start
參數允許使用負值,此時將使得尋找從字串的起始位置開始,到 $start
位置為止。
<?php header("Content-type:text/html;charset=utf-8"); $string = "ABCDCBAbcd"; $findme = "bC"; echo "子串 “'$findme'” 第一次出现的位置:".stripos($string, $findme,2); echo "<br>子串 “'$findme'” 最后一次出现的位置:".strripos($string, $findme,-5); ?>
輸出結果:
好了就說到這裡了,有其他想知道的,可以點擊這個哦。 → →php影片教學
最後給大家推薦閱讀一個經典課程《PHP字串處理(玉女心經版)》,免費的~快來學習啊!
以上是PHP字串學習判斷子字串是不是存在(大小寫不敏感)的詳細內容。更多資訊請關注PHP中文網其他相關文章!