我有一些正在通过PHP运行的HTML:
<a href="?char=">&</a>
我希望使用preg_replace
将第一个&
替换为urlencode
d值。但是:
preg_replace("/char=\">(.*?)<\/a>/", "char=".urlencode("$1")."\">$1</a>", $links);
但这给了我$1
的值,而不是预期的反向引用。我该怎样做我想做的事情(使输出看起来像<a href="?char=%26">&</a>
)?
答案 0 :(得分:3)
您可以在正则表达式中使用修饰符e
或使用函数preg_replace_callback
(请参阅文档)。
答案 1 :(得分:1)
是的, e 修饰符和 preg_replace_callback 功能方法都可以完成这项工作。
我个人更喜欢单行决定:
的preg_replace( “/焦炭= \” &GT;(*)&LT;?/ A&GT; / E”, ' “炭=” 进行urlencode( “$ 1”) “\\” &GT; $ 1" ', $链接);