這篇“php如何檢測子字符串是否存在”文章的知識點(diǎn)大部分人都不太理解,所以小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來看看這篇“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)行字符串查找操作時,有時會要求在某一字符串中查找指定的子字符串(簡稱子串),看看該子串是否存在于這個字符串中。
我們一般會通過使用PHP內(nèi)置函數(shù)來查找這個子串在字符串的第一次或最后一次的出現(xiàn)位置來進(jìn)行判斷。而查找字符串有兩種情況:一種是對大小寫不敏感,即不區(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);
?>
看看上例的代碼,你們覺得這個結(jié)果會是什么?第一次出現(xiàn)的位置為“2”,最后一次出現(xiàn)的位置為“8”,對不對?我們來看一下輸出結(jié)果:
哎呀,居然是“1”和“7”,為什么會這樣?原因是:字符串位置起始于 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é)果:
下面我們具體看看這兩個函數(shù)吧。
stripos($string,$find,$start)
函數(shù)可以查找字符串在另一字符串中第一次出現(xiàn)的位置(不區(qū)分大小寫)。
strripos($string,$find,$start)
函數(shù)可以查找字符串在另一字符串中最后一次出現(xiàn)的位置(不區(qū)分大小寫)。
這兩個函數(shù)的參數(shù)是相似的,都接受兩個必需參數(shù)$string
和$find
,一個可省略參數(shù)$start
。
$string
參數(shù):用于指定要被查找的字符串。
$find
參數(shù):用于指定要查找的子串,可以包含一個或者多字符。(如果不是字符串類型,那么它將被轉(zhuǎn)換為整型并被視為字符順序值)。
$start
參數(shù):用于指定從$string
中的哪個字符開始查找,返回的位置數(shù)字值仍然相對于 $string
的起始位置。
但strripos()函數(shù)的$start
參數(shù)允許使用負(fù)值,此時將使得查找從字符串的起始位置開始,到 $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é)果:
情況2:檢測子串是不是存在(大小寫敏感)
我們來看看下面一下示例
<?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()函數(shù)會區(qū)分大小寫的在字符串$string
中查找子串$findme1
或者$findme2
。當(dāng)完全匹配上,存在子串時,會返回子串在字符串的第一次或最后一次的出現(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ù)相似,都接受兩個必需參數(shù)$string
(被查找的字符串)和$find
(要查找的子串),一個可省略參數(shù)$start
(查找的開始位置)。注:字符串位置起始于 0,而不是 1。
<?php
header("Content-type:text/html;charset=utf-8");
$string = "ABCabcabcABC";
$findme1 = "c";
$findme2 = "C";
echo "子串 '$findme1' 第一次出現(xiàn)的位置:".strpos($string, $findme1);
echo "<br>子串 '$findme1' 最后一次出現(xiàn)的位置:".strrpos($string, $findme1);
echo "<br>子串 '$findme2' 第一次出現(xiàn)的位置:".strpos($string, $findme2);
echo "<br>子串 '$findme2' 最后一次出現(xiàn)的位置:".strrpos($string, $findme2);
?>
輸出結(jié)果:
但strrpos()函數(shù)的參數(shù)$start
可以接受負(fù)值,當(dāng)它為負(fù)數(shù)時,將會導(dǎo)致查找在字符串結(jié)尾處開始的計(jì)數(shù)位置處結(jié)束。
輸出結(jié)果:<?php
header("Content-type:text/html;charset=utf-8");
$string = "ABCabcabcABC";
$findme1 = "c";
$findme2 = "C";
echo "子串 '$findme1' 第一次出現(xiàn)的位置:".strpos($string, $findme1);
echo "<br>子串 '$findme1' 最后一次出現(xiàn)的位置:".strrpos($string, $findme1,-5);
echo "<br>子串 '$findme2' 第一次出現(xiàn)的位置:".strpos($string, $findme2);
echo "<br>子串 '$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è)資訊頻道。
網(wǎng)頁名稱:php如何檢測子字符串是否存在
網(wǎng)頁URL:http://jinyejixie.com/article44/poshhe.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、企業(yè)網(wǎng)站制作、做網(wǎng)站、網(wǎng)站設(shè)計(jì)、關(guān)鍵詞優(yōu)化、網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)