PHP - Email validation avec filter_var
PHP
[02/09/2016] Email validation avec filter_var
FILTER_VALIDATE_EMAIL
Il existe maintes fonctions PHP qui permettent de valider ou non une adresse email.
Ces fonctions sont plus ou moins importantes et efficaces.
Voici un exemple :
function is_email_valid($email) {
$atom = '[-a-z0-9!#$%&'*+/=?^_`{|}~]'; // caractères autorisés avant l'arobase
$domain = '([a-z0-9]([-a-z0-9]*[a-z0-9]+)?)'; // caractères autorisés après l'arobase (nom de domaine)
$regex = '/^' . $atom . '+' . // Une ou plusieurs fois les caractères autorisés avant l'arobase
'(.' . $atom . '+)*' . // Suivis par zéro point ou plus
// séparés par des caractères autorisés avant l'arobase
'@' . // Suivis d'un arobase
'(' . $domain . '{1,63}.)+' . // Suivis par 1 à 63 caractères autorisés pour le nom de domaine
// séparés par des points
$domain . '{2,63}$/i'; // Suivi de 2 à 63 caractères autorisés pour le nom de domaine
// test de l'adresse e-mail
if (preg_match($regex, $email)) {
return "E-mail is valid"; // Valide
} else {
return "E-mail is not valid"; // Non valide
}
}
Mais que diriez vous de pouvoir le faire en une seule ligne ?
Peut être que vous connaissez déjà cette fonction PHP très intéressante qu'est filter_var ? Si c'est le cas, je ne vous apprends rien... Mais pour les autres, voici comment valider une adresse email très simplement :
function filter_email($email) {
if(!filter_var($email, FILTER_VALIDATE_EMAIL)) {
return "E-mail is not valid";
} else {
return "E-mail is valid";
}
}
Cette fonction PHP est disponible depuis la version PHP 5.2 et sera également disponible en PHP 7.
Vous pouvez allez plus loin avec les filtres autorisés :
- Filtres de validation
- Filtres de nettoyage
- Autres filtres
- Drapeaux des filtres
Vous pouvez consulter cette page pour en savoir davantage ;-)
Les nombreux filtres peuvent vous permettre de valider les adresses IP, les URLs, les valeurs booléennes, les chiffres décimaux, etc.
Retrouvez mon code sur le standalone ici.