php字串替換函數str

來源:互聯網
上載者:User

php裡字串替換的函數,有str_replace()、str_ireplace()、substr_replace()、preg_replace()、strtr()等幾個,程式員在寫程式的時候,往往會根據自己的習慣以及實際情況選用其中一個或多個。這幾個函數雖然都有字串替換的功能,但它們無論從文法到作用,還是速度和效率上都有所不同,所以並非在任何場合都可以使用它們。

str_replace()與preg_replace()的區別

在字串替換的函數裡,str_replace()的使用率是最高的,它的用法也比較簡單,而preg_replace()的使用率相對來說比較低,因為它需要你懂得寫Regex,而Regex有時候並不容易寫。

str_replace()與preg_replace()的用法場合是不同的,str_replace被替換(尋找)的內容是固定的、確定的,當然可以使用變數,但是變數也表示固定的、確定的內容,比如可以完成把所有的\n替換為<br>等場合。而preg_replace被替換(尋找)的內容是用規則來描述的,比如可以把所有的<和>之間的內容(HTML代碼)替換掉。當然preg_replace也可以用來替換固定內容。

str_replace速度要比preg_replace快

兩者比較,執行效率方面誰更好呢?這就涉及到速度問題了。有人測試發現,str_replace速度要比preg_replace快一些,但好像沒有某些人說的快4倍那麼多。10w次的兩個詞替換結果表明:str_replacece 耗時0.38 sec,preg_replace 耗時0.97sec。

str_replace()與str_ireplace()的區別

str_replace()與str_ireplace()的用法是相同的,它們的區別僅僅是str_replace()對大小寫敏感,而str_ireplace()不區分大小寫。

str_replace()與strtr() 誰的速度更快?

str_replace()與strtr()這兩者的執行效率問題,許多人說法不一,有人說strtr()比str_replace()速度快,但有人經過執行個體證明了str_replace()比strtr()速度快一些。

某網友測試strtr()在strtr(string,array)用法的時候,它比str_replace更慢些。10w次的兩個詞替換結果表明:str_replacece()耗時0.38 sec,而strtr() 耗時0.52sec。

php程式裡,有很多功能是可以用不同的函數來實現的,除了上述幾個之外,可能大家也未曾注意過,比如很久之前就分享過的一篇文章:

php判斷字串長度isset()速度比strlen()更快

所以在我們選擇使用什麼函數的時候,我們最好知道一下那些函數的執行效率如何,這樣才能寫出效能更出色的程式。



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.