PHP-Domänennamenvalidierung ohne reguläre Ausdrücke
Viele Entwickler stehen vor der Notwendigkeit, Domänennamen zu validieren und sicherzustellen, dass sie bestimmten Formatierungsregeln entsprechen. Für diese Aufgabe werden zwar häufig reguläre Ausdrücke verwendet, diese können jedoch komplex und potenziell fehleranfällig sein. In diesem Artikel wird eine Lösung zur Validierung von Domänennamen in PHP untersucht, ohne auf reguläre Ausdrücke angewiesen zu sein.
In bestimmten Situationen, beispielsweise bei der Arbeit mit Legacy-Systemen oder beim Umgang mit strengen Zeichenbeschränkungen, kann es erforderlich sein, Domänennamen zu validieren ohne auf reguläre Ausdrücke zurückzugreifen. Die folgende Funktion erreicht dies durch die Implementierung einer Reihe logischer Prüfungen:
<code class="php">function is_valid_domain_name($domain_name) { // Validate alphanumeric characters if (!preg_match("/^[a-zA-Z0-9]+$/", $domain_name)) { return false; } // Validate length of each label $labels = explode(".", $domain_name); foreach ($labels as $label) { if (strlen($label) < 1 || strlen($label) > 63) { return false; } } // Validate overall length if (strlen($domain_name) > 253) { return false; } return true; }</code>
Diese Funktion stellt sicher, dass Domänennamen mit alphanumerischen Zeichen beginnen und enden und dass jede Beschriftung innerhalb des Domänennamens die angegebenen Längenbeschränkungen einhält. Außerdem wird die Gesamtlänge des Domainnamens validiert.
Testfälle
Die folgenden Testfälle demonstrieren die Wirksamkeit dieser Validierungsfunktion:
<code class="php">is_valid_domain_name? [a] Y is_valid_domain_name? [0] Y is_valid_domain_name? [a.b] Y is_valid_domain_name? [localhost] Y is_valid_domain_name? [google.com] Y is_valid_domain_name? [news.google.co.uk] Y is_valid_domain_name? [xn--fsqu00a.xn--0zwm56d] Y is_valid_domain_name? [goo gle.com] N is_valid_domain_name? [google..com] N is_valid_domain_name? [google.com ] N is_valid_domain_name? [google-.com] N is_valid_domain_name? [.google.com] N is_valid_domain_name? [<script] N is_valid_domain_name? [alert(] N is_valid_domain_name? [.] N is_valid_domain_name? [..] N is_valid_domain_name? [ ] N is_valid_domain_name? [-] N is_valid_domain_name? [] N</code>
Durch die Befolgung dieser logischen Prüfungen bietet diese Funktion eine zuverlässige Möglichkeit, Domänennamen zu validieren, ohne dass reguläre Ausdrücke erforderlich sind. Dieser Ansatz erhöht die Flexibilität und verringert das Fehlerpotenzial bei der Validierung von Domänennamen in PHP.
Das obige ist der detaillierte Inhalt vonWie validiere ich Domänennamen in PHP ohne reguläre Ausdrücke?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!