PHP中的strtr函數使用介紹(str_replace)
更新時間:2011年10月20日 15:43:49 作者:
PHP的 strtr 函數, 性能要比 str_replace 函數高, 可以代替 str_replace 來使用
strtr 有兩種形式:
string strtr ( string $str , string $from , string $to )
string strtr ( string $str , array $replace_pairs )
當使用第一種的時候, 參數 $from, $to 的字符串長度一定要相同, 否則多余的(不管是$from多還是$to多) 字符被忽略.
比如 $str = 'a-=b' ;
當$from='-=' ,$to='CD',輸出'aCDb', 因為'-='與'CD'的長度相同,沒有問題.
當$from='-=' ,$to='CDE',輸出'aCDb', $to里的'E'被忽略.
當$from='-=' ,$to='C',輸出'aC=b', $from里的'='被忽略.
而使用第二種形式, 則沒有這個問題, 多余的字條不會忽略.
所以,如果故意用 strtr 函數代替 str_replace, 并且使用了第一種形式, 則一定要注意這個特征, 這可能是一個陷阱.
string strtr ( string $str , string $from , string $to )
string strtr ( string $str , array $replace_pairs )
當使用第一種的時候, 參數 $from, $to 的字符串長度一定要相同, 否則多余的(不管是$from多還是$to多) 字符被忽略.
比如 $str = 'a-=b' ;
當$from='-=' ,$to='CD',輸出'aCDb', 因為'-='與'CD'的長度相同,沒有問題.
當$from='-=' ,$to='CDE',輸出'aCDb', $to里的'E'被忽略.
當$from='-=' ,$to='C',輸出'aC=b', $from里的'='被忽略.
而使用第二種形式, 則沒有這個問題, 多余的字條不會忽略.
所以,如果故意用 strtr 函數代替 str_replace, 并且使用了第一種形式, 則一定要注意這個特征, 這可能是一個陷阱.
相關文章
php小經驗:解析preg_match與preg_match_all 函數
本篇文章是對php中的preg_match函數與preg_match_all函數進行了詳細的分析介紹,需要的朋友參考下2013-06-06
Fatal error: Allowed memory size of 134217728 bytes exhauste
這篇文章主要介紹了Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 2611816 bytes)錯誤的解決方法,需要的朋友可以參考下2014-11-11

