Maison >développement back-end >tutoriel php >Les noms de domaine peuvent-ils être validés en PHP sans expressions régulières ?

Les noms de domaine peuvent-ils être validés en PHP sans expressions régulières ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-01 19:29:30682parcourir

Can Domain Names Be Validated in PHP Without Regular Expressions?

Validation des noms de domaine en PHP

La validation peut-elle être effectuée sans expressions régulières ?

La validation des noms de domaine sans expressions régulières n'est pas recommandée en raison de la sécurité potentielle vulnérabilités et résultats incohérents. Les expressions régulières offrent une approche robuste et standardisée pour garantir l'exactitude.

Modèle Regex pour la validation des noms de domaine

Pour valider les noms de domaine à l'aide d'expressions régulières, considérez le modèle suivant :

^([a-z\d](-*[a-z\d])*)(\.([a-z\d](-*[a-z\d])*))*$/i

Cette expression comprend plusieurs critères :

  • Caractères valides : Garantit que les noms de domaine contiennent uniquement caractères alphanumériques, traits d'union et points.
  • Longueur totale : Les noms de domaine ne doivent pas dépasser 253 caractères.
  • Longueur des étiquettes individuelles : Chacun l'étiquette (la partie séparée par des points) ne doit pas dépasser 63 caractères.

Validation personnalisée Fonction

Une fonction PHP améliorée pour la validation des noms de domaine :

<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)
            &amp;&amp; preg_match("/^.{1,253}$/", $domain_name)
            &amp;&amp; preg_match("/^[^\.]{1,63}(\.[^\.]{1,63})*$/", $domain_name));
}</code>

Cas de test

Domain Name Validation Result
a Yes
0 Yes
a.b Yes
localhost Yes
google.com Yes
news.google.co.uk Yes
xn--fsqu00a.xn--0zwm56d Yes
goo gle.com No
google..com No
google.com No
google-.com No
.google.com No
No
alert( No
. No
.. No
No
- No
No

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn