如何在PHP中使用str_replace而不允许它替换以下代码中$ replace_with中使用的字符?
<?php
$string='abcd';
$replace= array('a','c');
$replace_with = '[ac]';
$string=str_replace($replace,$replace_with,$string);
echo $string;
?>
结果将是:
“ [a [ac]] b [ac] d ”
如何强制我的脚本仅用一次 [ac] ”替换$ string中的“ a ”,而又不允许其替换“ c 新插入的“ [ac] ”中的“ strong>”?
答案 0 :(得分:1)
strtr()
恰好满足您的要求:
$string = strtr( $string, array( 'a'=>'[ac]', 'c'=>'[ac]' ) );
输出:
[ac]b[ac]d
相关摘录:
如果给定两个参数,则第二个参数应为
array('from' => 'to', ...)
形式的数组。返回值是一个字符串,其中所有出现的数组键都已被相应的值替换。最长的键将首先尝试。 替换子字符串后,将不再搜索其新值。