php strstr、stristr、strpos函數比較

來源:互聯網
上載者:User
關鍵字 網路程式設計 PHP教程

在字元查找時在php中為我們提供了三個函數 strstr、stristr、strpos,它們三個的用法有點區別下面我們來一下介紹相關函數。

語法:
string strstr ( string haystack, string needle)
返回haystack中從needle開始到結束的字串.
如果沒有傳回值,即沒有發現needle,則返回FALSE

注: 這個函數是大小寫敏感的。

實例1


$city_str=fopen(cgi_path." /data/weather/city.dat","r");
$city_ch=fread($city_str,filesize(cgi_path." /data/weather/city.dat"));
$city_ch_arr=explode("|",$city_ch);
如果能匹配到所在市
if(strstr($area_ga,"市")){
foreach($city_ch_arr as $city_ch_arr_item){
if(@strstr($area_ga,$city_ch_arr_item)){
echo $area_ga.'<br>';
echo $city_ch_arr_item;
$s_city=$city_ch_arr_item;
}
}
}//如果找不到市 那麼看看是不是能找到省 有時會有這樣的情況:廣東省長城寬頻 這樣的一律歸屬到該省省府
elseif(strstr($area_ga,"河北")!==false){
$s_city="石家莊";
}

city.dat中是一些城市 格式是這樣的
廣州|深圳|汕頭|惠州

更多詳細內容請查看:HTTP://www.111cn.net/phper/18/8304359e6918876b45d02c200bc8f193.htm

stristr() 函數查找字串在另一個字串中第一次出現的位置。

如果成功,則返回字串的其餘部分(從匹配點)。 如果沒有找到該字串,則返回 false。


<?php
echo stristr("Hello world!","WORLD");
?>
輸出:

world!

strpos介紹

相對於前兩者查找成功後返回的是字元,strpos查找成功後則是返回的是位置。 因為位置有可能是0,所以判斷查找失敗使用===false更合適。

strpos的性能比較好,如果只是判斷needle是否在字串haystack中,則使用strpos較好,它將佔用更少的記憶體和獲得更快的執行速度。 但是strpos對特殊字元支援不好,比如對中文就不能很好支援


例子


<?php
echo strpos("Hello world!","wo");
?>

輸出:

6

注釋:該函數對大小寫敏感。 如需進行對大小寫不敏感的搜索,請使用 stripos() 函數。


結合上面實例我們得出結論

strstr 區別大小寫,從字元開始找如果有返回true否則就返回false
stristr 字元不區別大小寫,從字元開始找如果有返回true否則就返回false
strpos 區別大小寫strpos查找成功後則是返回的是位置。 因為位置有可能是0,所以判斷查找失敗使用===false更合適。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.