php 字符串替换常用str_replace函数,但这个函数会对一个字符串进行多次替换,比如

$search  = array('A', 'B', 'C', 'D', 'E');
$replace = array('B', 'C', 'D', 'E', 'F');
$subject = 'A';
echo str_replace($search, $replace, $subject);

// 输出 F ,因为 A 被 B 替换,B 又被 C 替换,以此类推...
// 由于从左到右依次替换,最终 E 被 F 替换

而要避免这个,可以使用strtr这个函数代替。如:

$replace = array('A'=>'B','B'=>'C','C'=>'D','D'=>'E','E'=>'F');
$subject = 'A';
echo strtr($subject, $replace);

//输出B,只进行了一次替换。

php字符串替换的问题
标签: