0

我做了一个 bbCode 替换器,但我被链接卡住了。

$replacements[3] = '<a href="\1">\2</a>';

它立即替换,但 URL 错误... mydomain.com http:\\somelink.com\
这个有什么问题?

4

1 回答 1

1

你实际上并没有显示正则表达式来匹配它..但它应该是这样的:

寻找

"'\[url=(.*?)\](.*?)\[/url\]'i"

代替

"<a href=\"\\1\">\\2</a>"

例子

preg_replace("'\[url=(.*?)\](.*?)\[/url\]'i", 
             "<a href=\"\\1\">\\2</a>", 
             "[url=www.google.com]Google![/url]"
             );

输出

<a href="www.google.com">Google!</a>

注意 我故意不验证正则表达式中的 URL,因为它很丑而且没有必要。使用验证它filter_var(..., FILTER_VALIDATE_EMAIL);

于 2012-07-16T23:30:02.230 回答