【发布时间】:2012-03-04 05:06:02
【问题描述】:
好的。所以我正在构建一个将 bbcoded 字符串解析为 html 的函数。 BBCode 链接的结构是这样的:
[url=http://somelink.com/]Link[/url]
我想成功:
<a href="http://somelink.com/">Link</a>
但我也想检查链接是否有效,以保护自己免受 XSS 攻击。我找到了这个正则表达式来检查有效链接:
/(http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/
现在,我尝试 preg_match_all 的 $str 和 foreach 匹配以检查它的 url 是否有效,然后将其解析为 html,但似乎我做不到。有什么建议吗?
【问题讨论】:
-
你是怎么尝试的?你得到什么输出/错误?
-
您可能会发现网络上可用的降价促销之一将为您提供所有这些信息。 Github 有一个列表。 github.github.com/github-flavored-markdown
-
SoboLAN 下面是一段代码:$links = array(); if(preg_match('/[url=(.*)](.*)[\/url]/', $str, $links)) { echo '
' . print_r($links, true) 。 '
';与我想要的不符。