如何在PHP中将URL与Regex匹配

时间:2014-05-14 02:35:56

标签: javascript php regex preg-replace preg-match

我是正则表达式的新手,我正在尝试将所有网址与正则表达式匹配。我正在使用preg_matchpreg_replace

我的PHP代码:

$text = "www.youtube.com<br />
         youtube.com<br />
         http://youtube.com<br />
         http://www.youtube.com<br />"

$regex = "/(?:http:\/\/|https:\/\/|)[\w]{0,3}[\w]+\.[\w]+[\.]?[\w]{0,4}[\S]{0,}/";
if (preg_match($regex, $text, $url)) {
    //url match
    $text = preg_replace($regex, "<a href='{$url[0]}''>{$url[0]}</a>", $text);
}
echo $text;

当我输出它时,它会显示如下:

www.youtube.com /< www.youtube.com /&lt; www.youtube.com /&lt; www.youtube.com /&lt;

(它们都像第一个链接一样,但我没有足够的声誉来发布超过2个链接。所以用你的想象力想象它们看起来就像第一个。我包含一个截图的链接下面也是)

为什么会这样?

我想让它显示如下:

www.youtube.com

youtube.com

http://youtube.com

http://www.youtube.com

Screenshot

0 个答案:

没有答案