php函數(shù)之strtr和str_replace的用法詳解以及效率分析 原創(chuàng)
PHP中主要用strtr()和str_repalce()這兩個函數(shù)替換字符串和數(shù)組,但你們都知道他們這兩個函數(shù)的區(qū)別和用法嗎?有不少文章在說使用strtr函數(shù)比str_replace快4倍,那為什么很多時候都在用str_replace,到底應(yīng)該使用哪個函數(shù)呢?
一. str_repalce()用法
str_replace(find,replace,string,count)
find:規(guī)定要查找的字符串或數(shù)組;
replace:被用來替換的字符串或數(shù)組;
string:被查詢的字符串或數(shù)組;
count:可選,替換的次數(shù)
<?php
//實例一:字符串替換字符串
$str1 = str_replace("red","black","red green yellow pink purple");
echo $str1; //輸出結(jié)果為black green yellow pink purple
echo "<br>";
//實例二:數(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ù)組,一一映射替換
$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
//實例四:如$search為數(shù)組,$replace為字符串時
$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會出現(xiàn)一些不可控的錯誤,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實現(xiàn)的MD5結(jié)合RSA簽名算法實例
這篇文章主要介紹了PHP實現(xiàn)的MD5結(jié)合RSA簽名算法,結(jié)合實例形式分析了php使用md5結(jié)合RSA實現(xiàn)的簽名算法相關(guān)操作技巧,并附帶了RSA公鑰與私鑰的相關(guān)說明,需要的朋友可以參考下2017-10-10
PHP圖片處理之使用imagecopy函數(shù)添加圖片水印實例
這篇文章主要介紹了PHP圖片處理之使用imagecopy函數(shù)添加圖片水印實例,本文給出了一個簡單的入門級的自定義函數(shù)示例,需要的朋友可以參考下2014-11-11
Lumen timezone 時區(qū)設(shè)置方法(慢了8個小時)
今天用 Lumen 框架寫代碼時, 也是初次體驗 Lumen, 遇到了一個問題, 從數(shù)據(jù)庫里查出的時間比數(shù)據(jù)庫里保存的 TIMESTAMP 時間慢了8個小時, 很明顯這是一個時區(qū)設(shè)置的問題, 本以為可以在1分鐘內(nèi)解決的, 但是我錯了2018-01-01
用PHP即時捕捉PHP中的錯誤并發(fā)送email通知的實現(xiàn)代碼
這段代碼,其用意就是當我們寫的php程式出錯的時候把錯誤內(nèi)容捕捉出來然后發(fā)到我們的email內(nèi),方便我們排錯2013-01-01
利用PHP實現(xiàn)智能文件類型檢測的實現(xiàn)代碼
通常我們想嚴格限制文件類型的時候,可以簡單地用$_FILES['myFile']['type'] 取得文件的 MIME類型然后來檢測它是否是合法的類型。2011-08-08

