字符串的比較和查找是最常見的操作,在之前的文章《PHP字符串學(xué)習(xí)之比較兩個(gè)字符串》中,我們介紹了比較字符串的方法。下面本篇文章帶大家了解一下字符串查找操作,介紹一下檢查子字符串是否存在的方法。
在進(jìn)行字符串查找操作時(shí),有時(shí)會(huì)要求在某一字符串中查找指定的子字符串(簡稱子串),看看該子串是否存在于這個(gè)字符串中。
我們一般會(huì)通過使用PHP內(nèi)置函數(shù)來查找這個(gè)子串在字符串的第一次或最后一次的出現(xiàn)位置來進(jìn)行判斷。而查找字符串有兩種情況:一種是對大小寫不敏感,即不區(qū)分大小寫的查找;另外一種是對大小寫敏感,即區(qū)分大小寫的查找。下面我們就來看看不區(qū)分大小寫要如何判斷子串是不是存在。
我們來看看下面一下栗子。
<?php header("Content-type:text/html;charset=utf-8"); $string = "ABCDCBAbcd"; $findme = "bC"; echo "子串 “'$findme'” 第一次出現(xiàn)的位置:".stripos($string, $findme); echo "<br>子串 “'$findme'” 最后一次出現(xiàn)的位置:".strripos($string, $findme); ?>
看看上例的代碼,你們覺得這個(gè)結(jié)果會(huì)是什么?第一次出現(xiàn)的位置為“2”,最后一次出現(xiàn)的位置為“8”,對不對?我們來看一下輸出結(jié)果:
哎呀,居然是“1”和“7”,為什么會(huì)這樣?原因是:字符串位置起始于 0,而不是 1。我們按起始位置1來算當(dāng)然不對。
因此我們就可以使用以下代碼來判斷子串是不是存在
<?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'” 中不存在。"; } ?>
輸出結(jié)果:
下面我們具體看看這兩個(gè)函數(shù)吧。
stripos($string,$find,$start)
函數(shù)可以查找字符串在另一字符串中第一次出現(xiàn)的位置(不區(qū)分大小寫)。
strripos($string,$find,$start)
函數(shù)可以查找字符串在另一字符串中最后一次出現(xiàn)的位置(不區(qū)分大小寫)。
這兩個(gè)函數(shù)的參數(shù)是相似的,都接受兩個(gè)必需參數(shù)$string
和$find
,一個(gè)可省略參數(shù)$start
。
-
$string
參數(shù):用于指定要被查找的字符串。 -
$find
參數(shù):用于指定要查找的子串,可以包含一個(gè)或者多字符。(如果不是字符串類型,那么它將被轉(zhuǎn)換為整型并被視為字符順序值)。 -
$start
參數(shù):用于指定從$string
中的哪個(gè)字符開始查找,返回的位置數(shù)字值仍然相對于$string
的起始位置。
但strripos()函數(shù)的$start
參數(shù)允許使用負(fù)值,此時(shí)將使得查找從字符串的起始位置開始,到 $start
位置為止。
<?php header("Content-type:text/html;charset=utf-8"); $string = "ABCDCBAbcd"; $findme = "bC"; echo "子串 “'$findme'” 第一次出現(xiàn)的位置:".stripos($string, $findme,2); echo "<br>子串 “'$findme'” 最后一次出現(xiàn)的位置:".strripos($string, $findme,-5); ?>
輸出結(jié)果:
好了就說到這里了,有其他想知道的,可以點(diǎn)擊這個(gè)哦。→ →php視頻教程
最后給大家推薦閱讀一個(gè)經(jīng)典課程《PHP字符串處理(玉女心經(jīng)版)》,免費(fèi)的~快來學(xué)習(xí)?。?/p>