Folks,
Did I write my code right ?
““
<?php
$url = ‘http://webdeveloper’;
$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: webdeveloperLINE: 15
I should’ve got echoed: **Invalid Domain: webdeveloperLINE: 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 = ‘webdeveloper.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
I should’ve got echoed:
**Valid Domain: webdeveloper.com
LINE: 10
How to fix this mess of the php vendor ? How would you code it to overcome their mess ?
**NOTE:
The invalid domain on the 2nd example is not getting echoed. Why is that ?
Cheers!