Une explication des déclarations de vérification des e-mails couramment utilisées en PHP
Auteur:Eve Cole
Date de mise à jour:2009-06-06 18:17:18
Je pense que quiconque a bien étudié PHP devrait connaître la déclaration suivante pour la vérification des e-mails, mais peu de gens peuvent vraiment la comprendre :
<?php
if (eregi("^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[az]{2,3}$",$ e-mail)) {
echo "Votre e-mail a passé l'inspection préliminaire" ;
}
?>
Dans cette phrase, la première chose est d’appliquer une fonction eregi, assez simple à comprendre. Trouvez simplement un livre et il vous donnera une explication :
Syntaxe : int ereg (modèle de chaîne, chaîne chaîne, tableau [regs]);
Valeur de retour : entier/tableau Cette fonction analyse et compare les chaînes en fonction de règles de modèle.
La valeur renvoyée par le résultat de la comparaison est placée dans le paramètre de tableau regs. Le contenu de regs[0] est la chaîne d'origine, regs[1] est la première chaîne conforme aux règles et regs[2] est la deuxième chaîne. qui est conforme aux règles, et ainsi de suite. Si le paramètre regs est omis, il sera simplement comparé et la valeur de retour sera vraie si elle est trouvée.
Ce qui n'est pas facile à comprendre, c'est l'expression régulière précédente : ^[_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[ az]{2 ,3}$
Dans cette expression régulière, "+" signifie que la chaîne précédente apparaît une ou plusieurs fois consécutivement ; "^" signifie que la chaîne suivante doit apparaître au début et "$" signifie que la chaîne précédente doit apparaître à la fin ;
"." est également ".", où "" est un caractère d'échappement ; "{2,3}" signifie que la chaîne précédente peut apparaître 2 à 3 fois de suite. "()" signifie que le contenu contenu doit également apparaître dans l'objet cible. "[_.0-9a-z-]" désigne tout caractère contenu dans "_", ".", "-", les lettres comprises entre a et z et les chiffres compris entre 0 et 9 ;
De cette façon, cette expression régulière peut être traduite comme ceci :
"Les caractères suivants doivent commencer par (^)", "Le caractère doit être contenu entre "_", ".", "-", des lettres comprises entre a et z, des chiffres compris entre 0 et 9 ([ _.0-9a-z-])", "Le caractère précédent apparaît au moins une fois (+)", @, "La chaîne est constituée d'une lettre comprise dans l'intervalle de a à z, de 0 à 9 commence par un caractère dans un nombre, suivi d'au moins un caractère contenu dans "-", de toute lettre comprise entre a et z, de tout nombre compris entre 0 et 9, et enfin se termine par (([0-9a -z. ][0-9a-z-]+.))", "Le caractère précédent apparaît au moins une fois (+)", "Les lettres comprises entre a et z apparaissent 2 à 3 fois et se terminent par lui ([ az] {2,3}$)”
C'est compliqué, n'est-ce pas ? C'est pourquoi les gens utilisent des expressions régulières.