php中替換字串函數strtr()和str_repalce()的用法與區別

來源:互聯網
上載者:User
在php中替換函數主要有strtr(),str_repalce()這兩個函數,下面這篇文中主要給大家介紹下這兩者之間的區別和用法,文中通過範例程式碼介紹的很詳細,有需要的朋友們可以參考借鑒,下面跟著小編一起來學習學習吧。

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

strtr(string,from,to) 或者strtr(string,array) 首先針對strtr函數第一種方式:

我們看看下面的舉例:

<?phpecho strtr("I Love you","Lo","lO");?>

得到的結果是: I lOve yOu

這個結果提醒我們:

1.strtr它是區分大小寫

2.strtr的替換是很特殊的,你注意看後面那個yOu,中間的O被替換的,這顯然不是我們的本意。

再舉一個特殊例子,說明這個php的sttr函數的怪異

<?phpecho strtr("I Love you","Love","");?>

結果是: I Love you

什麼也不會改變,所以strtr需要注意的是:

3.不能被替換為空白,也就是末位那個參數不能是Null 字元串,當然空格是可以的。

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

<?phpecho strtr("I Loves you","Love","lOvEA");?>

結果是: I lOvEs yOu

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

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

ok,既然這個strtr函數挺麻煩為什麼還要用呢?

原因是,它的速度很快。據說,strtr 比 str_replace 快四倍。

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

那怎麼用才舒服?

這就是它的第二種情況:

strtr(string,array)

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

<?php$table_change = array('you'=>'her sister');echo strtr("I Love you",$table_change);?>

結果為: I Love her sister

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

比如:

<?php$table_change = array('you'=>'her sister');$table_change += array('Love' => 'hate');echo strtr("I Love you",$table_change);?>

結果是: I hate her sister

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

字串取代。

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

傳回值: 字串

函數種類: 資料處理

內容說明:

本函數將字串 str 代入 haystack 字串中,將所有的 needle 置換成 str。

下例將 %body% 以 black 取代

<?php$bodytag = str_replace("%body%", "black", "<body text=%body%>");echo $bodytag;?>

格式:

[@str_replace("要替換的舊內容", "要取代原內容的新字元", $被替換內容的變數名)]

[@str_replace(array('舊1','舊2','舊3'), array('新1','新2','新3'), $被替換內容的變數名)]

[@str_replace(array('舊1','舊2','舊3'), '新內容', $被替換內容的變數名)]

執行個體:

多對一替換:想把內容欄位裡所有的<p></p>標籤清除掉,替換成空 [ @str_replace(array('<p>','</p>'), '', $Content) ]

一對一替換:想把內容欄位裡所有的<br>標籤換成<p> [ @str_replace('<br>', '<p>', $Content) ]

多對多替換:想把內容欄位裡的<br>換成<br />, 同時<p>換<hr>,把</p>全清除 [ @str_replace(array('<br>', '<p>','</p>') , array('<br />','<hr>',''), $Content) ]

以上就是本文的全部內容,希望對大家的學習有所協助。


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.