【发布时间】:2012-01-19 02:04:20
【问题描述】:
$end = preg_replace($pattern, $replacement, $str);
如何使替换字符串 $replacement 随 $str 中的每个匹配项而变化?例如,我想用关联的图像替换每个匹配的字符串。关于回调的一些事情......对吗?
【问题讨论】:
标签: php preg-replace
$end = preg_replace($pattern, $replacement, $str);
如何使替换字符串 $replacement 随 $str 中的每个匹配项而变化?例如,我想用关联的图像替换每个匹配的字符串。关于回调的一些事情......对吗?
【问题讨论】:
标签: php preg-replace
是的,带有回调的东西。特别是preg_replace_callback,这使得重复调用变得多余。要替换的内容列表:
$src = preg_replace_callback('/(thing1|thing2|thing3)/', 'cb_vars', $src);
回调可以进行某种形式的查找或转换:
function cb_vars($m) {
return strtoupper($m[1]);
}
同样,您可以使用普通的 preg_replace 和 /e 修饰符来内联。
【讨论】:
您需要在模式字符串中使用preg_replace_callback 或/e 修饰符。第一个功能更强大,但如果您只追求相对简单的东西,第二个更方便。
【讨论】: