【发布时间】:2009-05-08 14:54:27
【问题描述】:
我正在用 Perl 编写一个论坛类型的讨论板,并希望将 http://www.google.com 自动更改为 HTML 链接。这也应该是安全的,并且在安全方面犯了错误。有没有一种快速、简单、安全的方式来自动添加链接?
【问题讨论】:
我正在用 Perl 编写一个论坛类型的讨论板,并希望将 http://www.google.com 自动更改为 HTML 链接。这也应该是安全的,并且在安全方面犯了错误。有没有一种快速、简单、安全的方式来自动添加链接?
【问题讨论】:
试试这样的:
use Regexp::Common qw /URI/;
$text =~ s|($RE{URI}{HTTP})(?!</a>)|<a href="$1">$1</a>|g
这里的关键是使用 Regexp::Common::URI,它可能比我想出的任何东西都更彻底的 url 匹配器。我还在最后做了一个negative lookahead assertion,以确保该网址不在链接中。最后一部分不是很彻底,因为有人可能会做这样的事情:
<a href="http://www.mysite.com">http://www.mysite.com is my website</a>
要正确执行此操作,您需要解析整个提交文本,并仅替换尚未成为链接一部分的 url。