PHP中strtr()和str_replace()的區別

轉:
strtr和str_replace同樣都是字符替換函數,以前沒怎麼用過strtr,今天看到一些朋友在BBS裏問strtr和str_replace 的區別,有些人說是效率不同,但鄙人感覺如果只是效率不同的話,那麼就沒有必要讓那個效率低的函數存在了,他們到底是哪裏有區別呢?

鄙人親自實驗了一把來驗證他們的不同:

strtr:他的效率確實是比str_replace快,而且好象還是4到5倍呢,他的作用與其說是字符替換,還不如說是字符串改寫。

他有3個參數:

第一個參數是要被改寫的字符串源。

第二個參數是定位改寫從那裏開始(這個參數只是確定改寫開始的地方,而不是要被改寫的字符,也就是說這裏的字符串長度與最終被改寫多少個字符無關)。

第三個參數是被改寫成的內容(最終要被改掉多少個字符,與他有關)。

例子:echo strtr(”abcdeabcf”,”abc”,”55″); 最終顯示55cde55cf,而不是55de55f,用str_replace的結果纔是55de55f

str_replace:這個函數相信大家都已經無比了解了。str_replace(要被替換的字符(可以是array),要替換成的字符(可以是array),字符串源(可以是array)[,$替換次數(可選的變量或引用)])

建議等長度替換用strtr,不等長替換就用str_replace。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章