php函數(shù)之strtr和str_replace的用法詳解以及效率分析 原創(chuàng)
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)文章。希望大家以后多多支持腳本之家!
相關(guān)文章
PHP中調(diào)試函數(shù)debug_backtrace的使用示例代碼
debug_backtrace() 是一個(gè)很低調(diào)的函數(shù),很少有人注意過(guò)它,這篇文章主要給大家介紹了關(guān)于PHP中調(diào)試函數(shù)debug_backtrace的使用方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,感興趣的朋友們隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2017-09-09
PHP的Yii框架中Model模型的學(xué)習(xí)教程
這篇文章主要介紹了PHP的Yii框架中Model模型的學(xué)習(xí)教程,Yii框架本身就顯龐大,所以模型類也就更加需要很好的編寫(xiě)維護(hù),需要的朋友可以參考下2016-03-03
PHP使用內(nèi)置dir類實(shí)現(xiàn)目錄遍歷刪除
這篇文章主要介紹了PHP使用內(nèi)置dir類實(shí)現(xiàn)目錄遍歷刪除的方法,涉及php中dir類的使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03
關(guān)于PHPDocument 代碼注釋規(guī)范的總結(jié)
本篇文章是對(duì)PHPDocument代碼注釋規(guī)范進(jìn)行了詳細(xì)的總結(jié)與介紹,需要的朋友參考下2013-06-06
php curl發(fā)送請(qǐng)求實(shí)例方法
在本篇文章里小編給大家整理的是關(guān)于php curl發(fā)送請(qǐng)求詳細(xì)教程以及相關(guān)知識(shí)點(diǎn),需要的朋友們可以學(xué)習(xí)下。2019-08-08
網(wǎng)站用php實(shí)現(xiàn)paypal整合方法
雖然在中國(guó)paypal不是很流行,但如果把范圍擴(kuò)大到世界的話,那paypal無(wú)疑就是老大了。2010-11-11
如何獲知PHP程序占用多少內(nèi)存(memory_get_usage)
想要知道編寫(xiě)的 PHP 腳本需要占用多少內(nèi)存么?很簡(jiǎn)單,直接使用 PHP 查看當(dāng)前分配給 PHP 腳本的內(nèi)存的函數(shù) memory_get_usage() 就可以了2012-09-09

