Maison > Article > développement back-end > PHP est livré avec une méthode pour vérifier votre adresse e-mail
Cet article présente principalement en détail la méthode propre à PHP pour vérifier si la boîte aux lettres existe, et la méthode propre à PHP pour vérifier si l'URL et l'IP sont légales. Les amis intéressés peuvent s'y référer. J'espère que cela aide tout le monde.
Il existe de nombreuses façons de vérifier les adresses e-mail en PHP. La plus courante consiste à écrire vos propres expressions régulières. Cependant, les expressions régulières sont gênantes. PHP est livré avec sa propre méthode de vérification.
filter_var
filter_var est une méthode de filtrage de variables intégrée à PHP. Elle fournit de nombreux filtres pratiques qui peuvent être utilisés pour vérifier les entiers, flottants. numéro de point, email, URL, adresse MAC, etc.
Si filter_var renvoie false, cela signifie que la variable ne peut pas passer le filtre, ce qui signifie qu'elle est illégale.
$email = "lastchiliarch@163.com"; var_dump(filter_var($email, FILTER_VALIDATE_EMAIL)); $email = "asb"; var_dump(filter_var($email, FILTER_VALIDATE_EMAIL)); $email = "1@a.com"; var_dump(filter_var($email, FILTER_VALIDATE_EMAIL));
Sortie :
string(21) "lastchiliarch@163.com" bool(false) string(7) 1@a.com
Pour les boîtes aux lettres illégales comme asb The le format a renvoyé false, mais pour 1@a.com, il a réussi, mais il était encore légèrement défectueux.
Cependant, si les règles générales sont adoptées, 1@a.com sera considérée comme une adresse e-mail légitime. Existe-t-il donc un moyen de la vérifier plus précisément ?
checkdnsrr
checkdnsrr est en fait utilisé pour interroger l'enregistrement DNS de l'hôte spécifié. Nous pouvons l'utiliser pour vérifier si la boîte aux lettres existe.
Pour 1@a.com, l'enregistrement MX n'existe définitivement pas.
$email = "lastchiliarch@163.com"; var_dump(checkdnsrr(array_pop(explode("@",$email)),"MX")); $email = "1@a.com"; var_dump(checkdnsrr(array_pop(explode("@",$email)),"MX"));
Sortie :
bool(true) bool(false)
Comme vous pouvez le voir, c'est parfait, le seul inconvénient est qu'il est trop lent, après tout, c'est une requête réseau. Par conséquent, il n’est pas approprié d’utiliser cette méthode pour vérifier simultanément un grand nombre de boîtes aux lettres.
filter_var+checkdnsrr
Nous pouvons combiner filter_var et checkdnsrr pour la vérification. Pour la plupart des boîtes aux lettres illégales, filter_var sera certainement utilisé. , et vous pouvez utiliser
checkdnsrr pour un jugement plus approfondi.
$email_arr = array("lastchiliarch@163.com", "1@a.com"); foreach($email_arr as $email) { if (filter_var($email) === false) { echo "invalid email: $email \n"; continue; } if(checkdnsrr(array_pop(explode("@",$email)),"MX") === false) { echo "invalid email: $email \n"; continue; } }
Sortie :
invalid email: 1@a.com
Mais il convient de noter que puisqu'il s'agit juste un enregistrement MX de vérification, on peut donc seulement juger que 163.com existe, mais il ne peut pas prouver que l'utilisateur lastchiliarch existe.
Si vous souhaitez déterminer plus précisément l'existence de la boîte aux lettres, vous pouvez uniquement vous connecter au serveur SMTP pour la vérifier.
Introduction de la vérification des e-mails. PHP a sa propre méthode pour vérifier si l'e-mail, l'URL et l'IP sont légaux. Voici une introduction :
L'essentiel est d'utiliser le filter_var. fonction.
Syntaxe
filter_var(variable, filtre, options)
variable Obligatoire. Spécifie les variables à filtrer.
filtre en option. Spécifie l'ID du filtre à utiliser.
options spécifie un tableau contenant des indicateurs/options. Vérifiez les indicateurs et options possibles pour chaque filtre.
Filtres PHP
Exemple n°1 Un exemple de filter_var()
<?php var_dump(filter_var('bob@example.com', FILTER_VALIDATE_EMAIL)); var_dump(filter_var('http://example.com', FILTER_VALIDATE_URL, FILTER_FLAG_PATH_REQUIRED)); ?>
La routine ci-dessus affichera :
string(15) "bob@example.com" bool(false)
Recommandations associées :
Code php pour vérifier si un nombre est impair ou pair
Code php pour vérifier si un fichier ou un répertoire existe
Bases et exemples simples d'expressions régulières 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!