【问题标题】:PHP Dynamic preg_replacePHP 动态 preg_replace
【发布时间】:2012-01-19 02:04:20
【问题描述】:

$end = preg_replace($pattern, $replacement, $str);

如何使替换字符串 $replacement 随 $str 中的每个匹配项而变化?例如,我想用关联的图像替换每个匹配的字符串。关于回调的一些事情......对吗?

【问题讨论】:

    标签: php preg-replace


    【解决方案1】:

    是的,带有回调的东西。特别是preg_replace_callback,这使得重复调用变得多余。要替换的内容列表:

     $src = preg_replace_callback('/(thing1|thing2|thing3)/', 'cb_vars', $src);
    

    回调可以进行某种形式的查找或转换:

     function cb_vars($m) {
         return strtoupper($m[1]);
     }
    

    同样,您可以使用普通的 preg_replace/e 修饰符来内联。

    【讨论】:

    • 是的!太棒了,我在阅读 php 文档时遇到了麻烦。感谢您拼写出来...
    【解决方案2】:

    您需要在模式字符串中使用preg_replace_callback/e 修饰符。第一个功能更强大,但如果您只追求相对简单的东西,第二个更方便。

    【讨论】:

      猜你喜欢
      • 2011-01-14
      • 2013-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-17
      • 2015-09-22
      相关资源
      最近更新 更多