我正在搜索多个网站来解决此问题。问题是我要求用户输入网站地址,就像人们说从不信任用户输入一样。
所以,可能的情况可能是这样的:
https或http://www.google.com
https或http://google.com
www.google.com
google.com
现在我想要URL必须是这样的。 http或https // www.google.com
目前我的代码低于代码但是没有按预期工作。
$url = "www.google.com";
if (preg_match("/\b(?:(?:https?):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*[-a-z0-9+&@#\/%=~_|]/i", $url)) {
echo "URL is valid";
}
else {
echo "URL is invalid";
}
答案 0 :(得分:4)
检查字符串的开头是否包含http
,其中还包含https
并检查它是否为有效网址:
if((strpos($url, 'http') === 0) && filter_var($url, FILTER_VALIDATE_URL)) {
echo "URL is valid";
} else {
echo "URL is invalid";
}
答案 1 :(得分:0)
试试这个表达式
/[-a-zA-Z0-9@:%_\+.~#?&//=]{2,256}\.[a-z]{2,4}\b(\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?/gi
它将保留您上面提到的所有案件