文章詳情頁
php函數之strtr和str_replace的用法詳解以及效率分析 原創
瀏覽:106日期:2022-06-05 18:24:13
目錄
- 一. str_repalce()用法
- 二. strtr()用法
- 三. 效率對比
- 四. 總結
PHP中主要用strtr()和str_repalce()這兩個函數替換字符串和數組,但你們都知道他們這兩個函數的區別和用法嗎?有不少文章在說使用strtr函數比str_replace快4倍,那為什么很多時候都在用str_replace,到底應該使用哪個函數呢?
一. str_repalce()用法
str_replace(find,replace,string,count)
find:規定要查找的字符串或數組;
replace:被用來替換的字符串或數組;
string:被查詢的字符串或數組;
count:可選,替換的次數
<?php //實例一:字符串替換字符串 $str1 = str_replace("red","black","red green yellow pink purple"); echo $str1; //輸出結果為black green yellow pink purple echo "<br>"; //實例二:數組的鍵值用字符串替換 $arr = array("blue","red","green","yellow"); $str1 = str_replace("red","pink",$arr,$count); print_r($str1); //輸出結果 //Array ( [0] => blue [1] => pink [2] => green [3] => yellow ) echo "<br>" . $count; //輸出替換次數1 //實例三:數組替換數組,一一映射替換 $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); //輸出結果 // Array ( [0] => apple [1] => tomato [2] => pitaya [3] => grape ) echo "<br>" . $count1; //輸出替換次數2 //實例四:如$search為數組,$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); //輸出結果 //Array ( [0] => tomato [1] => apple [2] => orange [3] => tomato ) echo "<br>" . $count2; //輸出替換次數2 ?>
二. strtr()用法
<?php //用法一:strtr(string,from,to) echo strtr("I Love you","Lo","lO"); /*輸出結果: I lOve yOu you中的o被替換了,很詭異,要注意可能; 這種用法也不能被替換為空,不生效; 不推薦使用該方法*/ //用法二:strtr(string,array) $arr = array("Hello" => "Hi", "world" => "earth"); echo strtr("Hello world",$arr); /*輸出結果: Hi earth*/ ?>
三. 效率對比
筆者使用apache環境和nginx環境做了測試:5.6版本 str_replace 比 strtr 平均效率高4倍,7.1版本效率基本相同。
四. 總結
使用strtr會出現一些不可控的錯誤,strtr被查詢替換的只能是字符串,而且str_replace函數比strtr效率高、速度快,因此推薦使用str_replace函數替換字符串或數組。
到此這篇關于php函數之strtr和str_replace的用法詳解以及效率分析的文章就介紹到這了,更多相關php函數strtr和str_replace對比內容請搜索以前的文章或繼續瀏覽下面的相關文章。希望大家以后多多支持!
標簽:
PHP
上一條:PHP偽協議基本原理介紹下一條:PHP字符串前后字符或空格刪除方法介紹
排行榜