我做了一个 bbCode 替换器,但我被链接卡住了。
$replacements[3] = '<a href="\1">\2</a>';
它立即替换,但 URL 错误... mydomain.com http:\\somelink.com\
这个有什么问题?
你实际上并没有显示正则表达式来匹配它..但它应该是这样的:
寻找
"'\[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);