PHP中strtr字符串替換用法詳解
本文實(shí)例講述了PHP中strtr字符串替換用法。分享給大家供大家參考。具體分析如下:
strtr(string,from,to)或者strtr(string,array)
首先針對(duì)strtr函數(shù)第一種方式,我們看看下面的舉例,代碼如下:
echo strtr("I Love you","Lo","lO");
?>
得到的結(jié)果是:
1 I lOve yOu
這個(gè)結(jié)果提醒我們,1.strtr它是區(qū)分大小寫的,2.strtr的替換是很特殊的,你注意看后面那個(gè)yOu,中間的O被替換的,這顯然不是我們的本意,再舉一個(gè)特殊例子,說明這個(gè)php sttr函數(shù)的怪異,代碼如下:
echo strtr("I Love you","Love","");
?>
結(jié)果是:
I Love you
什么也不會(huì)改變,所以strtr需要注意的是:不能被替換為空,也就是末位那個(gè)參數(shù)不能是空字符串,當(dāng)然空格是可以的,再次舉例strtr函數(shù)的另一種情況,代碼如下:
echo strtr("I Loves you","Love","lOvEA");
?>
運(yùn)行結(jié)果是
1 I lOvEs yOu
注意看第三個(gè)參數(shù)的A,在結(jié)果中并沒有出現(xiàn).
我不建議用strtr以少換多,既然這個(gè)strtr函數(shù)挺麻煩為什么還要用呢?原因是,它的速度很快,據(jù)說,strtr 比 str_replace 快四倍,所以能用strtr函數(shù)的時(shí)候一定要用,那怎么用才舒服?這就是它的第二種情況:strtr(string,array)
strtr符合意愿的使用方法,代碼如下:
$table_change = array('you'=>'her sister');
echo strtr("I Love you",$table_change);
?>
結(jié)果為:
I Love her sister
小技巧:你想到替換什么你就往數(shù)組加什么,比如代碼如下:
$table_change = array('you'=>'her sister');
$table_change += array('Love' => 'hate');
echo strtr("I Love you",$table_change);
?>
結(jié)果是
I hate her sister
再次提醒那個(gè)Love 寫成love 是行不通的,亂七八糟說了一通,其實(shí)關(guān)于strtr最想說的就是這個(gè)后面的用法了簡(jiǎn)單方便,貌似后面的用法也忽略掉了前后字符長度不同的問題,以上php strtr函數(shù)實(shí)驗(yàn),PHP5.2 測(cè)試通過,代碼如下:
//這個(gè)時(shí)候輸出的為baicai而不是bai123cai,因?yàn)閟tr("pao")<strlen("bai123")
echo strtr("paocai!","pao","bai123");
?>
實(shí)例2:當(dāng)被替換的值長度小于被替換目標(biāo)的時(shí)候,以下為引用的內(nèi)容,代碼如下:
//這個(gè)時(shí)候輸出的為laocai而不是lacai,因?yàn)閟tr("pao")>strlen("la")
echo strtr("paocai!","pao","la");
?>
實(shí)例3:支持?jǐn)?shù)組替換,以下為引用的內(nèi)容,代碼如下:
$Arr=array('ao'=>'oa','ai'=>'ia');
echo strtr("paocai!",$Arr); //這個(gè)時(shí)候輸出的為poacia
?>
其次是str_replace,以下為引用的內(nèi)容,代碼如下:
echo str_replace("you","paocai","I love you!"); //會(huì)輸出I love paocai!
?>
希望本文所述對(duì)大家的PHP程序設(shè)計(jì)有所幫助。
相關(guān)文章
PHP合并數(shù)組+號(hào)和array_merge的區(qū)別
這篇文章主要介紹了PHP合并數(shù)組+號(hào)和array_merge的區(qū)別,PHP的數(shù)組融合一般有兩種做法,一種是直接使用加號(hào)相加,另一種則是使用array_merge函數(shù)進(jìn)行相加,兩者之間有點(diǎn)區(qū)別,需要的朋友可以參考下2015-06-06
php中foreach結(jié)合curl實(shí)現(xiàn)多線程的方法分析
這篇文章主要介紹了php中foreach結(jié)合curl實(shí)現(xiàn)多線程的方法,結(jié)合實(shí)例形式分析了foreach語句結(jié)合curl循環(huán)調(diào)用模擬多線程的原理與實(shí)現(xiàn)技巧,需要的朋友可以參考下2016-09-09
php實(shí)現(xiàn)異步將遠(yuǎn)程鏈接上內(nèi)容(圖片或內(nèi)容)寫到本地的方法
這篇文章主要介紹了php實(shí)現(xiàn)異步將遠(yuǎn)程鏈接上內(nèi)容(圖片或內(nèi)容)寫到本地的方法,涉及php基于curl進(jìn)行遠(yuǎn)程文件傳輸?shù)南嚓P(guān)操作技巧,需要的朋友可以參考下2016-11-11
windows下升級(jí)PHP到5.3.3的過程及注意事項(xiàng)
自從讓自己專注于LAMP方面以來,就一直在關(guān)注PHP社區(qū)的動(dòng)向,今天上了官網(wǎng)php.net,發(fā)現(xiàn)發(fā)布了新版的了.PHP5.3.3,提高了穩(wěn)定性和安全性,就有了升級(jí)的念頭了.2010-10-10

