php函數(shù)之strtr和str_replace的用法詳解以及效率分析 原創(chuàng)
PHP中主要用strtr()和str_repalce()這兩個(gè)函數(shù)替換字符串和數(shù)組,但你們都知道他們這兩個(gè)函數(shù)的區(qū)別和用法嗎?有不少文章在說使用strtr函數(shù)比str_replace快4倍,那為什么很多時(shí)候都在用str_replace,到底應(yīng)該使用哪個(gè)函數(shù)呢?
一. str_repalce()用法
str_replace(find,replace,string,count)
find:規(guī)定要查找的字符串或數(shù)組;
replace:被用來替換的字符串或數(shù)組;
string:被查詢的字符串或數(shù)組;
count:可選,替換的次數(shù)
<?php //實(shí)例一:字符串替換字符串 $str1 = str_replace("red","black","red green yellow pink purple"); echo $str1; //輸出結(jié)果為black green yellow pink purple echo "<br>"; //實(shí)例二:數(shù)組的鍵值用字符串替換 $arr = array("blue","red","green","yellow"); $str1 = str_replace("red","pink",$arr,$count); print_r($str1); //輸出結(jié)果 //Array ( [0] => blue [1] => pink [2] => green [3] => yellow ) echo "<br>" . $count; //輸出替換次數(shù)1 //實(shí)例三:數(shù)組替換數(shù)組,一一映射替換 $arr1 = array("banana","orange"); $arr2 = array("pitaya","tomato"); $con_arr = array("apple","orange","banana","grape"); $con_rep = str_replace($arr1,$arr2,$con_arr,$count1); print_r($con_rep); //輸出結(jié)果 // Array ( [0] => apple [1] => tomato [2] => pitaya [3] => grape ) echo "<br>" . $count1; //輸出替換次數(shù)2 //實(shí)例四:如$search為數(shù)組,$replace為字符串時(shí) $search = array("banana","grape"); $replace = "tomato"; $arr = array("banana","apple","orange","grape"); $new_arr = str_replace($search,$replace,$arr,$count2); print_r($new_arr); //輸出結(jié)果 //Array ( [0] => tomato [1] => apple [2] => orange [3] => tomato ) echo "<br>" . $count2; //輸出替換次數(shù)2 ?>
二. strtr()用法
<?php //用法一:strtr(string,from,to) echo strtr("I Love you","Lo","lO"); /*輸出結(jié)果: I lOve yOu you中的o被替換了,很詭異,要注意可能; 這種用法也不能被替換為空,不生效; 不推薦使用該方法*/ //用法二:strtr(string,array) $arr = array("Hello" => "Hi", "world" => "earth"); echo strtr("Hello world",$arr); /*輸出結(jié)果: Hi earth*/ ?>
三. 效率對比
筆者使用apache環(huán)境和nginx環(huán)境做了測試:5.6版本 str_replace 比 strtr 平均效率高4倍,7.1版本效率基本相同。
四. 總結(jié)
使用strtr會(huì)出現(xiàn)一些不可控的錯(cuò)誤,strtr被查詢替換的只能是字符串,而且str_replace函數(shù)比strtr效率高、速度快,因此推薦使用str_replace函數(shù)替換字符串或數(shù)組。
到此這篇關(guān)于php函數(shù)之strtr和str_replace的用法詳解以及效率分析的文章就介紹到這了,更多相關(guān)php函數(shù)strtr和str_replace對比內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章。希望大家以后多多支持腳本之家!
相關(guān)文章
PHP中調(diào)試函數(shù)debug_backtrace的使用示例代碼
debug_backtrace() 是一個(gè)很低調(diào)的函數(shù),很少有人注意過它,這篇文章主要給大家介紹了關(guān)于PHP中調(diào)試函數(shù)debug_backtrace的使用方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,感興趣的朋友們隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-09-09PHP的Yii框架中Model模型的學(xué)習(xí)教程
這篇文章主要介紹了PHP的Yii框架中Model模型的學(xué)習(xí)教程,Yii框架本身就顯龐大,所以模型類也就更加需要很好的編寫維護(hù),需要的朋友可以參考下2016-03-03PHP使用內(nèi)置dir類實(shí)現(xiàn)目錄遍歷刪除
這篇文章主要介紹了PHP使用內(nèi)置dir類實(shí)現(xiàn)目錄遍歷刪除的方法,涉及php中dir類的使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03關(guān)于PHPDocument 代碼注釋規(guī)范的總結(jié)
本篇文章是對PHPDocument代碼注釋規(guī)范進(jìn)行了詳細(xì)的總結(jié)與介紹,需要的朋友參考下2013-06-06網(wǎng)站用php實(shí)現(xiàn)paypal整合方法
雖然在中國paypal不是很流行,但如果把范圍擴(kuò)大到世界的話,那paypal無疑就是老大了。2010-11-11如何獲知PHP程序占用多少內(nèi)存(memory_get_usage)
想要知道編寫的 PHP 腳本需要占用多少內(nèi)存么?很簡單,直接使用 PHP 查看當(dāng)前分配給 PHP 腳本的內(nèi)存的函數(shù) memory_get_usage() 就可以了2012-09-09