Validation des noms de domaine PHP sans expressions régulières
De nombreux développeurs sont confrontés à la nécessité de valider les noms de domaine, en s'assurant qu'ils sont conformes à des règles de formatage spécifiques. Bien que les expressions régulières soient couramment utilisées pour cette tâche, elles peuvent être complexes et potentiellement sujettes à des erreurs. Cet article explore une solution pour valider les noms de domaine en PHP sans recourir aux expressions régulières.
Dans certaines situations, comme lorsque vous travaillez avec des systèmes existants ou lorsque vous faites face à des limitations strictes de caractères, il peut être nécessaire de valider les noms de domaine. sans recourir aux expressions régulières. La fonction suivante y parvient en implémentant une série de vérifications logiques :
<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>
Cette fonction garantit que les noms de domaine commencent et se terminent par des caractères alphanumériques et que chaque étiquette du nom de domaine respecte les restrictions de longueur spécifiées. Il valide également la longueur totale du nom de domaine.
Cas de test
Les cas de test suivants démontrent l'efficacité de cette fonction de validation :
<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>
En suivant ces vérifications logiques, cette fonction fournit un moyen fiable de valider les noms de domaine sans avoir besoin d'expressions régulières. Cette approche améliore la flexibilité et réduit le risque d'erreurs lors de la validation des noms de domaine en PHP.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!