oujood.com

FILTER_SANITIZE_EMAIL en PHP : définition, syntaxe, exemples et astuces

Le filtre FILTER_SANITIZE_EMAIL supprime tous les caractères sauf les lettres, chiffres ...

chercher |

PHP cours tutorial

Filtres de nettoyage en php : FILTER_SANITIZE_EMAIL

Définition et utilisation

Le filtre FILTER_SANITIZE_EMAIL est une fonction PHP qui permet de nettoyer une chaîne de caractères afin de la rendre conforme au format d'une adresse e-mail. Il supprime tous les caractères non valides, tels que les espaces, les caractères spéciaux, les retours chariots, etc.

Le filtre FILTER_SANITIZE_EMAIL supprime tous les caractères sauf les lettres, les chiffres, et les caractères: !#$%&'*+-/=?^_`{|}~@.[].
Ce filtre permet toutes les lettres sans accent, chiffres et les caractères $-_.+ ! * ' {}|`#%/de ^~ [] ? @&=


Syntaxe générale

La syntaxe générale du filtre FILTER_SANITIZE_EMAIL est la suivante :

filter_var(string, FILTER_SANITIZE_EMAIL)

Où $input est la variable contenant l'adresse e-mail à traiter.

Exemples pratiques d'utilisation

Voici quelques exemples pratiques d'utilisation de FILTER_SANITIZE_EMAIL :

Exemple 1:     📋 Copier le code

	$input_email = "user@exemple.com";
	$sanitized_email = filter_var($input_email, FILTER_SANITIZE_EMAIL);
	echo "Adresse e-mail après la sanitization : " . $sanitized_email;

Dans cet exemple, la variable $input_email contient une adresse e-mail valide. FILTER_SANITIZE_EMAIL supprime tous les caractères non autorisés, laissant une adresse e-mail propre.

Exemple 2:     📋 Copier le code


<?php
$var="que lqu-unà@exe\\mple.com";

var_dump(filter_var($var, FILTER_SANITIZE_EMAIL));
?> 
Dans ce code on a un caractère avec accent (à), un espace et deux antislashs (\\) que le filtre suprime et donne le résultat suivnt:

string(21) "quelqu-un@exemple.com"

Exemple complet avec :FILTER_SANITIZE_EMAIL et FILTER_VALIDATE_EMAIL

Exemple 3:     📋 Copier le code

<?php
$a = 'joe@exemple.org';
$b = 'bogus - at - exemple dot org';
$c = '(bogus@exemple.org)';

$sanitized_a = filter_var($a, FILTER_SANITIZE_EMAIL);
if (filter_var($sanitized_a, FILTER_VALIDATE_EMAIL)) {
    echo "Cette (a) adresse email nettoyée est considérée comme valide.\n";
}

$sanitized_b = filter_var($b, FILTER_SANITIZE_EMAIL);
if (filter_var($sanitized_b, FILTER_VALIDATE_EMAIL)) {
    echo "Cette (b) adresse email nettoyée est considérée comme valide.\n";
} else {
    echo "Cette (b) adresse email nettoyée est considérée comme invalide.\n";
}

$sanitized_c = filter_var($c, FILTER_SANITIZE_EMAIL);
if (filter_var($sanitized_c, FILTER_VALIDATE_EMAIL)) {
    echo "Cette (c) adresse email nettoyée est considérée comme valide.\n";
    echo "Avant : $c\n";
    echo "Après :  $sanitized_c\n";    
} else {
    echo "Cette (c) adresse email nettoyée est considérée comme invalide.\n";
}
?>

Sortie du code PHP

Cette (a) adresse email nettoyée est considérée comme valide.
Cette (b) adresse email nettoyée est considérée comme invalide.
Avant : (bogus@exemple.org)
Après : bogus@exemple.org
Cette (c) adresse email nettoyée est considérée comme valide.

Explication

La variable $a contient une adresse e-mail valide. Le filtre FILTER_SANITIZE_EMAIL la nettoie et la retourne, sans modifier sa validité. Le filtre FILTER_VALIDATE_EMAIL confirme que la chaîne de caractères nettoyée est toujours une adresse e-mail valide.

La variable $b contient une adresse e-mail invalide. Le filtre FILTER_SANITIZE_EMAIL supprime les espaces et les caractères spéciaux, mais l'adresse e-mail reste invalide. Le filtre FILTER_VALIDATE_EMAIL confirme que la chaîne de caractères nettoyée n'est pas une adresse e-mail valide.

La variable $c contient une adresse e-mail valide, mais elle est entourée de parenthèses. Le filtre FILTER_SANITIZE_EMAIL supprime les parenthèses, mais l'adresse e-mail reste valide. Le filtre FILTER_VALIDATE_EMAIL confirme que la chaîne de caractères nettoyée est une adresse e-mail valide.

Astuces et conseils d'utilisation

  • Utilisez FILTER_SANITIZE_EMAIL pour nettoyer les entrées utilisateur avant de les utiliser dans des opérations sensibles.
  • Ne comptez pas uniquement sur le nettoyage( la sanitization) pour valider les adresses e-mail ; utilisez également FILTER_VALIDATE_EMAIL pour une validation complète.

Retourner à la liste des filtres

Cours precedent:
  filter_sanitize_special_chars

    Sommaire de :
Le langage php

 Cours suivant:
filter_sanitize_url    

Par carabde 20 Aout 2014

Voir aussi nos tutoriel :

word-spacing

Augmente ou diminue l'espace entre les mots dans un texte

L'Attribut contenteditable

Spécifie si le contenu d'un élément est modifiable ou non

Arrière-plans de CSS3

Apprendrez les propriétés d'arrière-plan suivantes :
background-sizeélt
background-origin
Plusieurs Images d’arrière plans
Apprendrez également comment utiliser plusieurs images d'arrière-plan.