- idn_to_ascii: documentation ( source)
- preg_match: documentation ( source)
<?php
$domain_name = "ελληνικά.idn.icann.org";
$domain_name = idn_to_ascii($domain_name);
function isValidDomainName($domain_name) {
return (preg_match("#^([\w-]+://?|www[\.])?[a-z0-9]+[a-z0-9\-\.]*[a-z0-9]+\.[a-z]{2,7}$#", $domain_name) //valid chars check
&& preg_match("/^.{1,253}$/", $domain_name) //overall length check
&& preg_match("/^[^\.]{1,63}(\.[^\.]{1,63})*$/", $domain_name) ); //length of each label
}
echo isValidDomainName($domain_name) ? "Domain is valid." : "Domain is not valid.";
?>