Heim > Artikel > Backend-Entwicklung > Warum kann ich Domänen in PHP nicht ohne reguläre Ausdrücke validieren?
Verifizierung des PHP-Domänennamens
Frage: Wie verifiziert man den Domänennamen in PHP, ohne reguläre Ausdrücke zu verwenden?
Verifizierungsanforderungen:
Mögliche Antworten:
Nicht verwendet Domainnamenvalidierung mit regulären Ausdrücken ist nicht möglich, da mehrere Regeln und Einschränkungen geprüft werden müssen.
Muster für reguläre Ausdrücke:
/^[a-z\d](-*[a-z\d])*)(\.([a-z\d](-*[a-z\d])*))*$/i
Bedeutung:
Beispielcode:
<code class="php">function is_valid_domain_name($domain_name) { return (preg_match("/^([a-z\d](-*[a-z\d])*)(\.([a-z\d](-*[a-z\d])*))*$/i", $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 }</code>
Testfall:
域名 | 有效性 |
---|---|
a | Y |
0 | Y |
a.b | Y |
localhost | Y |
google.com | Y |
news.google.co.uk | Y |
xn--fsqu00a.xn--0zwm56d | Y |
goo gle.com | N |
google..com | N |
google.com | N |
google-.com | N |
.google.com | N |
|