I trying to validate domains with php domain filter. But it's not working. Why ?
<?php
$url = 'http://stackoverflow';
$domain = parse_url($url,PHP_URL_HOST);
if(!filter_var($domain,FILTER_VALIDATE_DOMAIN))
{
echo "Invalid Domain: $domain"; echo '<br>';
echo 'LINE: ' . __LINE__;
}
else
{
echo 'Valid Domain: ' .$domain;
echo 'LINE: ' . __LINE__;
}
?>
I get echoed: Valid Domain: stackoverflowLINE: 15
It seems aslong as the url contains "http://" regardless if the url contains a tld or not, the php filter accepts it as a valid domain. Here's the proof ....
<?php
$url = 'stackoverflow.com';
$domain = parse_url($url,PHP_URL_HOST);
if(!filter_var($domain,FILTER_VALIDATE_DOMAIN))
{
echo "Invalid Domain: $domain"; echo '<br>';
echo 'LINE: ' . __LINE__;
}
else
{
echo 'Valid Domain: ' .$domain;
echo 'LINE: ' . __LINE__;
}
?>
This time, I get echoed: Invalid Domain: LINE: 10
Note the invalid domain is not getting echoed. Why ?
How to fix this ? How would you code it ?
In short, this FILTER is not working ....
filter_var($domain,FILTER_VALIDATE_DOMAIN
Thanks.