[英]domain validate in php using preg_match
我想使用preg_match验证php中的域名
例如,这些都是有效的:
https://www.google.com
http://www.google.com
www.google.com
google.com
google.com/
https://www.google.com.tr/search?dcr=0&source=hp&q=web+ui&
我只能验证以下示例
https://www.google.com
http://www.google.com
www.google.com
google.com
$domain_validation = "/(?:http(s)?:\/\/)?(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+(?:[a-z]{2,63}|[a-z0-9]{2,59})?(?:\/)+$/i";
if(preg_match("$domain_validation", $inputDomainName)){
$validSite = true;
}
我想验证一下
google.com/
https://www.google.com.tr/search?dcr=0&source=hp&q=web+ui&
请帮忙解决
试试这个。 它应该完全按照您想要的去做。
$domain_validation = '/((http|https)\:\/\/)?[a-zA-Z0-9\.\/\?\:@\-_=#]+\.([a-zA-Z0-9\&\.\/\?\:@\-_=#])*/';
if(preg_match("$domain_validation", $inputDomainName)){
$validSite = true;
}
你可以试试这个功能
function getDomain($url) {
$pieces = parse_url($url);
$domain = isset($pieces['host']) ? $pieces['host'] : '';
if (preg_match('/(?P<domain>[a-z0-9][a-z0-9\-]{1,63}\.[a-z\.]{2,6})$/i', $domain, $regs)) {
return $regs['domain'];
}
return false;
}
上面的函数返回域带有扩展名
示例: 如果您通过子网域mail.google.com or any www.google.com/images/xyz
传递任何内容,它将返回google.com
然后,您将任何url传递给此函数,它将返回带有扩展名的域(.com,.net,.in等),并且您可以使用inputdomain进行检查并进行简单验证。
希望这可以帮助
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.