我制作了一个bbCode替代品,但我对这个链接感到困惑。
$replacements[3] = '<a href="\1">\2</a>';
它会立即替换,但网址错误... mydomain.com http:\\ somelink.com \\这个有什么问题?
答案 0 :(得分: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);