2012-03-18 54 views
0

我在我的网站有这个功能。preg_replace不工作

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

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

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

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

有人能告诉我什么是错误的功能?

回答

1

所以其目的是转换:

This is a reference to the >>4 reply 

...到:

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

...其中 “& GT;”是“>”的HTML UTF-8等效项。 (请记住,您不想创建HTML问题)

问题:(1)您忘记在替换项(2)中转义引号,因为您要分隔数字,所以需要使用括号来创建一个子模式供以后参考。

一旦你这样做,你到达:

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

好运

+0

谢谢!它有帮助。 – Visualizer7 2012-03-18 07:39:40