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, 并且使用了第一種形式, 則一定要注意這個特征, 這可能是一個陷阱.