Preg_replace提供了错误的URL

时间:2012-12-05 14:29:37

标签: php html

我将这部分代码用于我的txt to url convert

$message=preg_replace("/(?i)\b((?:https?:\/\/|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'\".,<>?«»“”‘’]))/", "<a href=\"$1\">$1</a>", $message);

上面的代码在我的PHP文件中,用于将$ message(从用户提交的表单)转换为html中的URL。 当用户提供www.google.com时,输出为http://www.MYDOMAIN.com/www.google.com。 我无法弄清楚"<a href=\"$1\">$1</a>"中我的问题在哪里。 有什么帮助吗?

1 个答案:

答案 0 :(得分:0)

像这样的事情

$message=preg_replace("/(?i)\b((?:https?:\/\/|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'\".,<>?«»“”‘’]))/", "<a href=\"http://$1\">$1</a>", $message);