如何强制所有链接以HTTP [php]开头

时间:2014-05-14 22:16:12

标签: php regex url hyperlink

这个问题很难说,所以我会尽我所能。

我希望每个链接都以http://开头,如果它还没有。这是一个例子:

我希望像google.com这样的链接自动重写为http://google.com。让我解释一下原因。我正在尝试将所有用户编写的URL与正则表达式实际链接。我用这个表达式成功地得到了这个:/[a-z]{3,7}\:\/\/[^\<\s\"\'\>]+|[\w\-\.]{2,}\.[a-z]{2,4}/i但是每个链接看起来像这样:google.com重定向到http://localhost/website/google.com这不是我想要的,我希望它转到{{1} }。

这有意义吗?

我的完整PHP就在这里:

http://google.com

1 个答案:

答案 0 :(得分:0)

不要尝试编写正则表达式来尝试将看起来的所有内容转换为可能成为URL的URL。最好的情况是,它会翻出来制作网址,而这些网址不会像你想象的那样丢失网页。

如果你有一个假设的字符串是一个URL,但不是以http://开头,只需附加它。

$myurl = 'google.com';
if( !preg_match('@^https?://@', $myurl) ) {
  $myurl = 'http://'.$myurl;
}

更好的是,使用输入验证来确保不良数据不会首先进入您的应用程序。