URL验证必须包含http或https

时间:2016-08-30 18:21:38

标签: php regex

我正在搜索多个网站来解决此问题。问题是我要求用户输入网站地址,就像人们说从不信任用户输入一样。

所以,可能的情况可能是这样的:

  

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";
    }

2 个答案:

答案 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

它将保留您上面提到的所有案件