新聞中心
這篇“php如何檢測子字符串是否存在”文章的知識點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“php如何檢測子字符串是否存在”文章吧。
目前成都創(chuàng)新互聯(lián)已為成百上千的企業(yè)提供了網(wǎng)站建設(shè)、域名、虛擬空間、網(wǎng)站托管維護(hù)、企業(yè)網(wǎng)站設(shè)計(jì)、霍山網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
4種方法:1、用stripos()查找子串的出現(xiàn)位置,語法“stripos(字符串,子串)”;2、用strripos()查找子串的的出現(xiàn)位置,語法“strripos(字符串,子串)”;3、用strpos()查找子串的出現(xiàn)位置,語法“strpos(字符串,子串)”;4、用strrpos()查找子串的出現(xiàn)位置,語法“strrpos(字符串,子串)”。
本教程操作環(huán)境:windows7系統(tǒng)、PHP8.1版、DELL G3電腦
在進(jìn)行字符串查找操作時(shí),有時(shí)會要求在某一字符串中查找指定的子字符串(簡稱子串),看看該子串是否存在于這個(gè)字符串中。
我們一般會通過使用PHP內(nèi)置函數(shù)來查找這個(gè)子串在字符串的第一次或最后一次的出現(xiàn)位置來進(jìn)行判斷。而查找字符串有兩種情況:一種是對大小寫不敏感,即不區(qū)分大小寫的查找;另外一種是對大小寫敏感,即區(qū)分大小寫的查找。
情況一:判斷子串是不是存在(大小寫不敏感)
我們來看看下面一下栗子。
子串 “'$findme'” 最后一次出現(xiàn)的位置:".strripos($string, $findme);
?>
看看上例的代碼,你們覺得這個(gè)結(jié)果會是什么?第一次出現(xiàn)的位置為“2”,最后一次出現(xiàn)的位置為“8”,對不對?我們來看一下輸出結(jié)果:
哎呀,居然是“1”和“7”,為什么會這樣?原因是:字符串位置起始于 0,而不是 1。我們按起始位置1來算當(dāng)然不對。
因此我們就可以使用以下代碼來判斷子串是不是存在
子串 “'$findme'” 在字符串 “'$string'” 中存在。";
}else{
echo "
子串 “'$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
位置為止。
子串 “'$findme'” 最后一次出現(xiàn)的位置:".strripos($string, $findme,-5);
?>
輸出結(jié)果:
情況2:檢測子串是不是存在(大小寫敏感)
我們來看看下面一下示例
子串 '$findme1' 在字符串 '$string' 中存在。";
}else{
echo "
子串 '$findme1' 在字符串 '$string' 中不存在。";
}
if($pos3 !=FALSE){
echo "
子串 '$findme2' 在字符串 '$string' 中存在。";
}else{
echo "
子串 '$findme2' 在字符串 '$string' 中不存在。";
}
if($pos4 !=FALSE){
echo "
子串 '$findme2' 在字符串 '$string' 中存在。";
}else{
echo "
子串 '$findme2' 在字符串 '$string' 中不存在。";
}
?>
strpos()和strrpos()函數(shù)會區(qū)分大小寫的在字符串$string
中查找子串$findme1
或者$findme2
。當(dāng)完全匹配上,存在子串時(shí),會返回子串在字符串的第一次或最后一次的出現(xiàn)位置;如果在字符串的沒有找到子串,則返回FALSE
。
從上面的例子可以看出,只有子串"bc
"和字符串“ABCDCBAbcd
”是完全匹配,子串"bc
"被認(rèn)為是存在于字符串“ABCDCBAbcd
”中的。因此輸出結(jié)果為:
下面我們來詳細(xì)了解一下strpos()和strrpos()函數(shù)。
strpos($string,$find,$start)
函數(shù)可以返回子字符串首次出現(xiàn)的位置(區(qū)分大小寫);strrpos($string,$find,$start)
函數(shù)可以返回子字符串最后一次出現(xiàn)的位置(區(qū)分大小寫);
strpos()和strrpos()函數(shù)相似,都接受兩個(gè)必需參數(shù)$string
(被查找的字符串)和$find
(要查找的子串),一個(gè)可省略參數(shù)$start
(查找的開始位置)。注:字符串位置起始于 0,而不是 1。
子串 '$findme1' 最后一次出現(xiàn)的位置:".strrpos($string, $findme1);
echo "
子串 '$findme2' 第一次出現(xiàn)的位置:".strpos($string, $findme2);
echo "
子串 '$findme2' 最后一次出現(xiàn)的位置:".strrpos($string, $findme2);
?>
輸出結(jié)果:
但strrpos()函數(shù)的參數(shù)$start
可以接受負(fù)值,當(dāng)它為負(fù)數(shù)時(shí),將會導(dǎo)致查找在字符串結(jié)尾處開始的計(jì)數(shù)位置處結(jié)束。
輸出結(jié)果:子串 '$findme1' 最后一次出現(xiàn)的位置:".strrpos($string, $findme1,-5);
echo "
子串 '$findme2' 第一次出現(xiàn)的位置:".strpos($string, $findme2);
echo "
子串 '$findme2' 最后一次出現(xiàn)的位置:".strrpos($string, $findme2,-5);
?>
以上就是關(guān)于“php如何檢測子字符串是否存在”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望小編分享的內(nèi)容對大家有幫助,若想了解更多相關(guān)的知識內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
新聞標(biāo)題:php如何檢測子字符串是否存在
當(dāng)前地址:http://www.ef60e0e.cn/article/poshhe.html