如何在php中验证正确的域名和子域名

时间:2010-06-27 06:17:55

标签: php regex validation dns

如何删除 www 验证有效的域名。

有效域

domain.com
subdomain.domain.com
sub-domain.domain.com

无效域

www.domain.com
www.subdomain.domain.com
http://www.domain.com/
http://www.subdomain.com/
www.domain.com/folder/

代码如何?

$domain ='www.domain.com/folder/';
if() {
// validate here
}

4 个答案:

答案 0 :(得分:4)

首先,手动删除www。然后确保它的形式为domain.tld或something.domain.tld

$domain = str_replace('www.','',$domain);

if(preg_match('/([a-zA-Z0-9\-_]+\.)?[a-zA-Z0-9\-_]+\.[a-zA-Z]{2,5}/',$domain)) //valid domain

答案 1 :(得分:1)

查看http://framework.zend.com/apidoc/core/Zend_Validate/Zend_Validate_Hostname.htmlZend_Validate_Hostname)课程。我认为您可以在Zend Framework之外使用它,只需稍作调整即可。

答案 2 :(得分:0)

$url = "http://stackoverflow.com/";
if (preg_match('/^(http|https|ftp)://([A-Z0-9][A-Z0-9_-]*(?:.[A-Z0-9][A-Z0-9_-]*)+):?(d+)?/?/i', $url)) {
    echo "Your url is ok.";
} else {
    echo "Wrong url.";
}

答案 3 :(得分:0)

试试这个:

if (!preg_match('/^[a-zA-Z]+[a-zA-Z0-9-]+[a-zA-Z0-9]+$/', $subdomain) || substr_count($subdomain,'--') >= 1) {
                echo "Invalid Subdomain";
              }
              else{ 
                 echo Valid Subdomain; 
              }