【发布时间】:2014-03-07 13:28:41
【问题描述】:
这是一个棘手的问题,这是我想要做的:
$str="abc def abc";
我想用123 替换first 出现的abc 和second 出现的abc 用456
现在有了 preg_match,我可以像这样用 123 替换第一次出现的 abc
preg_replace('/abc/', '123', $str, 1);
但是如何用 456 替换第二个匹配项,最重要的是如何立即执行并生成所需的字符串(即 123 def 456)。
注意:字符串是从外部源生成的。
谢谢阿马尔
【问题讨论】:
-
除了
preg_replace('/abc/', '123', $str, 1); preg_replace('/abc/', '456', $str, 1);...preg_replace_callback()还有一个回调,它维护每个替换的静态计数,并可以根据该计数修改其响应