PHP替換字符串函數strtr()和str_replace()

strtr(string,from,to):php

逐個字符開始替換,以from跟to中長度較較短的一個爲準,例如:數組

strtr("aidenliu","ai","b") 只替換原始字符串中出現的a 輸出:bidenliuide

strtr("aidenliu","a","bc") 只替換原始字符串中出現的a 輸出:bidenliu函數

此函數是大小寫敏感的,具若是發生屢次替換,每一次替換的藍本都是最原始的那個字符串,而不是在前一次替換的基礎上替換,如spa

strtr("aidenliu","aA","A@") 會輸出Aidenliu 而不是@idenliuxml

strtr(string,array):字符串

array 爲關聯數組,用關聯數組中的值替換原始字符串中出現的對應的鍵,若是發生屢次替換,每次替換的對像都是最原始的那個字符串,而不是在一次替換的基礎上替換(此點與str_replace不一樣)string

strtr(string,from,to)與 strtr(string,array):it

strtr(string,from,to)是逐個字符替換,而strtr(string,array)是字符串替換class

strtr("aidenliu","ai","") 不發生替換(第二個參數爲零長度字符串)

strtr("aidenliu",array("ai"=>"")) 發生替換

參考以下文章:

php中替換函數主要有strtr(),str_repalce()這兩個函數,但大家都知道他們這兩個函數的區別和用法嗎?

先來看看這個php字符串替換函數 strtr()的兩種用法:

strtr(string,from,to)

或者strtr(string,array)

首先針對strtr函數第一種方式:

咱們看看下面的舉例:

 
 

獲得的結果是:

I lOve yOu

這個結果提醒咱們:

1.strtr它是區分大小寫的
2.strtr的替換是很特殊的,你注意看後面那個yOu,中間的O被替換的,這顯然不是咱們的本意。
再舉一個特殊例子,說明這個php的sttr函數的怪異

 
 

結果是:

I Love you

什麼也不會改變,因此strtr須要注意的是:

3.不能被替換爲空,也就是末位那個參數不能是空字符串,固然空格是能夠的。

再次舉例strtr函數的另外一種狀況:

 
 

結果是:

I lOvEs yOu

注意看第三個參數的A,在結果中並無出現。

4.我不建議用strtr以少換多。

ok,既然這個strtr函數挺麻煩爲何還要用呢?

緣由是,它的速度很快。聽說,strtr 比 str_replace 快四倍。

5.能用strtr函數的時候必定要用。

那怎麼用才舒服?

這就是它的第二種狀況:

strtr(string,array)

6.strtr符合意願的使用方法

 
 

結果爲:

I Love her sister

7.小技巧:你想到替換什麼你就往數組加什麼

好比:

 
 

結果是:

I hate her sister

再次提醒那個Love 寫成love 是行不通的哦。

字符串取代。

語法: string str_replace(string needle, string str, string haystack);

返回值: 字符串

函數種類: 資料處理

內容說明

本函數將字符串 str 代入 haystack 字符串中,將全部的 needle 置換成 str。mlevine@adtraq.com (11-Apr-1999) 指出在 PHP 3.0.7 版,本函數有些 bug,而 nadeem@bleh.org (05-Jun-1999) 補充在 PHP 3.0.8 版本函數就回復正常了。

使用範例

下例將 %body% 以 black 取代

 
 

格式:

[@str_replace("要替換的舊內容", "要取代原內容的新字符", $被替換內容的變量名)]
[@str_replace(array('舊1','舊2','舊3'), array('新1','新2','新3'), $被替換內容的變量名)]
[@str_replace(array('舊1','舊2','舊3'), '新內容', $被替換內容的變量名)]
實例:

多對一替換:想把內容字段裏全部的

標籤清除掉,替換成空 [@str_replace(array('

','

'), '', $Content)]

一對一替換:想把內容字段裏全部的
標籤換成

[@str_replace('
', '

', $Content)]

多對多替換:想把內容字段裏的
換成
, 同時


,把

全清除 [@str_replace(array('
', '

','

'), array('
','


',''), $Content)]

相關文章
相關標籤/搜索