我需要从文本字符串的文本堆中验证域名来处理以下内容:
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