[PHP] Vérifier le format d'une adresse email - Tutoriel pour Webmasters  

Accueil > Tutoriels pour Webmasters > [PHP] Vérifier le format d'une adresse email

[PHP] Vérifier le format d'une adresse email

Dans le langage PHP il est parfois nécessaire de vérifier la bonne conformité d'une adresse email. C'est pratique par exemple pour vérifier qu'un utilisateur à indiqué une adresse email correct et non une suite de caractère qui n'a rien à voir. Il existe plusieurs façons en PHP pour vérifier le format d'une adresse email. L'astuce ne permet pas de vérifier que l'adresse email existe, mais de vérifier qu'une chaîne de caractère respecte le même format qu'une adresse email.

Prérequis

Ce tutoriel donne des exemples de code PHP. Pour bien comprendre et appliquer ce qui est expliqué, il faut avoir des notions de bases en PHP.

Utiliser la fonction filter_var()

Fort heureusement, il y a une fonction PHP qui permet de vérifier facilement si une chaine de caractère ressemble à un email. Il s'agit de la fonction filter_var(). Le second paramètre de cette fonction doit être "FILTER_VALIDATE_EMAIL".

  1. span style="color: #808080; font-style: italic;">//$email = 'test'; // test avec une chaine qui n'est pas une adresse email
  2. 'test@example.com'; // test avec une chaine qui est une adresse email
  3.  
  4. // Vérifie si la chaine ressemble à un email
  5. 'Cet email est correct.''Cet email a un format non adapté.'

En utilisant ce code tel quel, le message "Cet email est correct" devrait s'afficher. Il est possible de déplacer les deux slashs de la première ligne à la deuxième ligne, pour tester ce code avec un code qui ne ressemble pas à une adresse email.

Utiliser une expression régulière

Le code précédent peut être réalisé de façon similaire avec une expression régulière (une REGEX). Le code PHP ci-dessous est donc pratiquement identique met utilise une REGEX.

  1. span style="color: #808080; font-style: italic;">//$email = 'test'; // test avec une chaine qui n'est pas une adresse email
  2. 'test@example.com'; // test avec une chaine qui est une adresse email
  3.  
  4. // Vérifie si la chaine ressemble à un email
  5. '#^[\w.-]+@[\w.-]+\.[a-z]{2,6}$#i''Cet email est correct.''Cet email a un format non adapté.'

En testant ce code PHP, normalement le résultat sera le même que précédemment, la page affichera "Cet email est correct".