preg_replace无法正常工作

时间:2012-03-18 06:39:38

标签: function preg-replace

我的网站上有这个功能。

function autolink($content) {
   $pattern = "/>>[0-9]/i" ;
   $replacement = "<a href=\"#$0\">>>$0</a>";
   return preg_replace($pattern, $replacement, $content, -1);

这是为了使某些字符成为可点击的超链接。

例如,(在线程上)当用户输入'&gt;&gt; 4'来表示另一个回复号码4时,该功能可能很有用。

但它不起作用。字符不会转换为超链接。它们只是作为纯文本保留。不可点击。

有人能告诉我这个功能有什么问题吗?

1 个答案:

答案 0 :(得分:1)

所以目标是转换:

This is a reference to the >>4 reply

...成:

This is a reference to the <a href="#4">&gt;&gt;4</a> reply

...其中“&amp; gt;”是HTML UTF-8等效于“&gt;”。 (记住,你不想创建HTML问题)

问题:(1)你忘记了替换(2)中的引号,因为你想要隔离数字,你需要用括号来创建一个子模式供以后参考。

执行此操作后,您将到达:

function autolink($contents) {
    return preg_replace( "/>>([0-9])/i",
                         "<a href=\"#$1\">&gt;&gt;$1</a>",
                         $contents,
                         -1
                       );
}
祝你好运