php函數(shù)之strtr和str_replace的用法詳解以及效率分析 原創(chuàng)
目錄
- 一. str_repalce()用法
- 二. strtr()用法
- 三. 效率對(duì)比
- 四. 總結(jié)
PHP中主要用strtr()和str_repalce()這兩個(gè)函數(shù)替換字符串和數(shù)組,但你們都知道他們這兩個(gè)函數(shù)的區(qū)別和用法嗎?有不少文章在說(shuō)使用strtr函數(shù)比str_replace快4倍,那為什么很多時(shí)候都在用str_replace,到底應(yīng)該使用哪個(gè)函數(shù)呢?
一. str_repalce()用法
str_replace(find,replace,string,count)
find:規(guī)定要查找的字符串或數(shù)組;
replace:被用來(lái)替換的字符串或數(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*/ ?>
三. 效率對(duì)比
筆者使用apache環(huán)境和nginx環(huán)境做了測(cè)試: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對(duì)比內(nèi)容請(qǐng)搜索以前的文章或繼續(xù)瀏覽下面的相關(guān)文章。希望大家以后多多支持!
