代码之家  ›  专栏  ›  技术社区  ›  Glen Solsberry

用功能替换

  •  2
  • Glen Solsberry  · 技术社区  · 15 年前

    我有一些HTML正在通过php运行:

    <a href="?char=">&</a>

    我想用一个 preg_replace 替换第一个 & 用一个 urlencode 它的D值。然而:

    preg_replace("/char=\">(.*?)<\/a>/", "char=".urlencode("$1")."\">$1</a>", $links);

    但这给了我价值 $1 ,而不是预期的返回引用。我怎样才能做我想做的(使输出看起来像 <a href="?char=%26">&</a> )是吗?

    2 回复  |  直到 15 年前
        1
  •  3
  •   p4bl0    15 年前

    可以使用修改器 e 在regexp中或使用函数 preg_replace_callback (看医生)相反。

        2
  •  1
  •   Mihail Dimitrov    15 年前

    是的,都是 e 修饰语和 preg_replace_回调 功能方法可以完成这项工作。
    我个人更喜欢一行决策:

    preg_replace(“/char=\”>(.*?)l//a & gt;/e; '“char=”urlencode(“$1”).“\”>$1”', $链接);