如何在 PHP 中验证没有 http 或 https 的域名


How to validate domain name without http or https in PHP?

我需要从文本字符串的文本堆中验证域名来处理以下内容:

www.dewalist.com
dewaxxxx.com
ng.dewalist.com
dewaster.com.au
test.co.uk
...
...

我可以使用FILTER_VALIDATE_URL但这只会验证完整的网址:http://www.dewalist.com bla bla,这不是我真正想要的。

类似的功能,但对于电子邮件,它是针对域的:

function extract_email_address ($string) 
    {
       $emails = array();
       $string = str_replace("'r'n",' ',$string);
       $string = str_replace("'n",' ',$string);
       foreach(preg_split('/ /', $string) as $token) {
            $email = filter_var($token, FILTER_VALIDATE_EMAIL);
            if ($email !== false) { 
                $emails[] = $email;
            }
        }
        return $emails;
    }

您可以使用parse_url()将URL拆分为逻辑部分,然后通过正则表达式仅验证您需要的部分。

http://php.net/parse_url