这个问题很难说,所以我会尽我所能。
我希望每个链接都以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
答案 0 :(得分:0)
不要尝试编写正则表达式来尝试将看起来的所有内容转换为可能成为URL的URL。最好的情况是,它会翻出来制作网址,而这些网址不会像你想象的那样丢失网页。
如果你有一个假设的字符串是一个URL,但不是以http://
开头,只需附加它。
$myurl = 'google.com';
if( !preg_match('@^https?://@', $myurl) ) {
$myurl = 'http://'.$myurl;
}
更好的是,使用输入验证来确保不良数据不会首先进入您的应用程序。