PHP - Email validation avec filter_var

PHP

[02/09/2016] Email validation avec filter_var

FILTER_VALIDATE_EMAIL

Email validation avec filter_var

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 :

  1. Filtres de validation
  2. Filtres de nettoyage
  3. Autres filtres
  4. 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.

© 2005 - 2024 • INFORMATUX Mentions légalesTraitement des données personnellesPolitique de confidentialité