我正在尝试找到preg_replace的模式,该模式将匹配段落中错误形成的HTML链接/ URL并用正确的链接替换它们。我真的不确定如何开始。
这就是我需要形成URL的方式(需要包含http://):
<a href="http://www.example.com" target="_blank">www.example.com</a>
错误的网址可能会以下列形式出现:
example.com
www.example.co.uk
<a href="example.com">example.com</a>
<a href=example.com>example.com</a>
非常感谢任何帮助或建议。
谢谢,
eb_dev
答案 0 :(得分:0)
好的,找到了一个似乎运作良好的解决方案:
$msg = preg_replace(
"#(^|[\n ])([\w]+?://[^ \"\n\r\t<]*)#is",
"$1<a href=\"$2\" target=\"_blank\">$2</a>",
$msg
);
$msg = preg_replace(
"#(^|[\n ])((www|ftp)\.[^ \"\t\n\r<]*)#is",
"$1<a href=\"http://$2\" target=\"_blank\">$2</a>",
$msg
);