如何使用preg_replace创建正确的URL

时间:2011-06-30 10:37:01

标签: url preg-replace

我正在尝试找到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

1 个答案:

答案 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
                   );