PHP代码和链接

PHP代码和链接,php,regex,anchor,bbcode,Php,Regex,Anchor,Bbcode,嗯。因此,我正在构建一个函数,将bbcoded字符串解析为html。BBCode链路的结构如下所示: [url=http://somelink.com/]Link[/url] 我想做到: <a href="http://somelink.com/">Link</a> 现在,我尝试预先匹配所有$str和foreach匹配,检查它的url是否有效,然后将其解析为html,但似乎我做不到。有什么建议吗?看看PHP的内置模块。它从PHP5.2开始提供,并包含过滤有效URL的F

嗯。因此,我正在构建一个函数,将bbcoded字符串解析为html。BBCode链路的结构如下所示:

[url=http://somelink.com/]Link[/url]
我想做到:

<a href="http://somelink.com/">Link</a>

现在,我尝试预先匹配所有$str和foreach匹配,检查它的url是否有效,然后将其解析为html,但似乎我做不到。有什么建议吗?

看看PHP的内置模块。它从PHP5.2开始提供,并包含过滤有效URL的
FILTER\u VALIDATE\u URL
常量。看看吧


我从未亲自使用过这个,但我相信在您的情况下,依赖语言内置功能比使用正则表达式安全得多(因为您似乎并不精通正则表达式)。

为什么要重新发明轮子


您可以使用解析BBCode

您是如何尝试的?你得到了什么样的输出/错误?你可能会发现网络上的一个降价会帮你解决所有这些问题。Github列出了一些。SoboLAN下面是一段代码:$links=array();如果(preg_match('/[url=(.*))(.*[\/url]/',$str,$links)){echo'。打印($links,true)。'';}它与我想要的不匹配。这不是我的问题。我无法生成将BBCode替换为html并检查有效url的正则表达式。
/(http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/