這篇文章帶給大家的內容是關於PHP查找和截取字串函數的詳細介紹(附範例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有幫助。
通常需要對字串進行尋找、截取的處理,會用到strstr,strrchr,strpos,strrpos,substr 等函數,在這裡整理記錄下。
strstr
string strstr ( string $haystack , mixed $needle [, bool $before_needle = false ] )
回傳haystack 字串從needle 第一次出現的位置開始到haystack結尾的字串。
strstr 會尋找字元首次出現的位置,並傳回其中的一部分,未找到傳回 false。範例
<?php $str = 'abcdefabcdef'; echo strstr($str, 'c') . PHP_EOL;// cdefabcdef,返回第一次出现位置后面的字符串,包括c echo strstr($str, 'c', true);// ab,返回第一次出现位置后面的字符串,不包括c
strrchr
string strrchr ( string $haystack , mixed $needle )
此函數傳回haystack 字串中的一部分,這部分以needle 的最後出現位置開始,直到haystack 末尾。
strrchr 會尋找字元最後一次出現的位置,並回到最後的部分,找不到傳回 false。範例
<php echo><h2 id="strpos">strpos</h2><blockquote>mixed strpos ( string $haystack , mixed $needle [, int $offset = 0 ] )<br> 傳回 needle 在 haystack 中首次出現的數字位置。 </blockquote><p>strpos 會尋找字元首次出現的位置,傳回所在位置的數字,而未找到傳回 false。範例</p><pre class="brush:php;toolbar:false"><?php $str = 'abcdefabcdef'; echo strpos($str, 'e') . PHP_EOL;// 4,字符串位置是从0开始 echo strpos($str, 'e',3) . PHP_EOL;// 4,从第3位开始查找 echo strpos($str, 'e',11);// false,从第11位开始查找
strrpos
int strrpos ( string $haystack , string $needle [, int $offset = 0 ] )
傳回字串 haystack 中 needle 最後一次出現的數字位置。
strrpos 會找出字元最後一次出現的位置,傳回所在位置的數字,而找不到回傳 false。範例
<?php $str = 'abcdefabcdef'; echo strrpos($str, 'e') . PHP_EOL;// 10,字符串位置是从0开始 echo strrpos($str, 'e', 4) . PHP_EOL;// 10,从第4位开始查找 echo strrpos($str, 'e', 11) . PHP_EOL;// false,从第11位开始查找 echo strrpos($str, 'e',-5);// 4,从尾部第5位开始查找
substr
string substr ( string $string , int $start [, int $length ] )
傳回字串 string 由 start 和 length 參數指定的子字串。
substr 根據位置參數,傳回截取的字串,失敗時傳回 false。範例
<?php $str = 'abcdefabcdef'; echo substr($str, 0, 5) . PHP_EOL;// abcde,从首部开始截取5位 echo substr($str, 0, -3) . PHP_EOL;// abcdefabc,从首部开始截取-3位 echo substr($str, -2) . PHP_EOL;// ef,从尾部开始截取2位 echo substr($str, -5, 3) . PHP_EOL;// bcd,从尾部第5位开始截取3位 echo substr($str, -5, -1) . PHP_EOL;// bcde,从尾部第5位开始截取-1位
實例及註解
實例
以上是函數的簡單範例,工作中合理使用會讓我們事半功倍。以下是取得郵件信箱使用者名稱或郵件信箱網域的實例
<?php $email = '123456@example.com'; // 获取用户名 echo strstr($email, '@', true) . PHP_EOL; echo substr($email, 0, strpos($email, '@')) . PHP_EOL; echo substr($email, 0, strrpos($email, '@')) . PHP_EOL;// 邮箱中只有一个@,所有 strpos 和 strrpos 相同 // 获取邮箱域名 echo substr(strstr($email, '@'), 1) . PHP_EOL; echo substr(strrchr($email, '@'), 1) . PHP_EOL; echo substr($email, strpos($email, '@') + 1) . PHP_EOL; echo substr($email, strrpos($email, '@') + 1);// 同上
註解
stristr、stripos、strripos 分別是strstr、strpos、strrpos 的不區分大小寫版本
strpos,7.1.0版本開始支援負數的offset
substr,length 為負數,那麼string 末尾處的length 個字元將會省略
strpos、strrpos ,判斷回傳值要用"===",因為有可能傳回等同於false 的非布林值
strpos、strrpos ,第二個參數必須是字串類型,如果不確定最好進行轉換
使用正規函數也可以對字串進行查找、截取,不過相同效果的情況下,正規效率會慢些
如果只是想確認字元是否存在於字串中,strpos 比strstr 效率高
mbstring 可以更好的處理多位元組編碼的字串
以上是PHP尋找和截取字串函數的詳細介紹(附範例)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本文比較了PHP和ASP.NET,重點是它們對大規模Web應用程序,性能差異和安全功能的適用性。兩者對於大型項目都是可行的,但是PHP是開源和無關的,而ASP.NET,

本文討論了PHP數據對象(PDO),這是PHP中數據庫訪問的擴展名。它通過準備好的語句及其對MySQLI的好處,包括數據庫抽象和更好的錯誤處理,強調了PDO在增強安全性方面的作用。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

記事本++7.3.1
好用且免費的程式碼編輯器

禪工作室 13.0.1
強大的PHP整合開發環境

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Atom編輯器mac版下載
最受歡迎的的開源編輯器