XL. Fonctions Filter
Introduction
Cette extension permet de valider et de filtrer les données venant habituellement de sources non sécurisées comme les entrées utilisateurs.
| Avertissement |
Ce module est EXPERIMENTAL. Cela signifie que le comportement de ces fonctions, leurs noms et concrètement, TOUT ce qui est documenté ici peut changer dans un futur proche, SANS PREAVIS! Soyez-en conscient, et utilisez ce module à vos risques et périls. |
Les filtres suivants existent actuellement :
Tableau 1. Filtres existants
| ID | Nom | Options | Flags | Description |
|---|---|---|---|---|
| FILTER_VALIDATE_INT | "int" | min_range, max_range | FILTER_FLAG_ALLOW_OCTAL, FILTER_FLAG_ALLOW_HEX | Valide une valeur en tant qu'entier, optionnellement avec un intervalle spécifique. |
| FILTER_VALIDATE_BOOLEAN | "boolean" | Retourne TRUE pour "1", "true", "on" et "yes", FALSE pour "0", "false", "off", "no", et "", NULL sinon. | ||
| FILTER_VALIDATE_FLOAT | "float" | Valide une valeur en tant que nombre flottant. | ||
| FILTER_VALIDATE_REGEXP | "validate_regexp" | regexp | Valide une valeur en tant qu'une regexp, une expression régulière compatible PERL. | |
| FILTER_VALIDATE_URL | "validate_url" | FILTER_FLAG_SCHEME_REQUIRED, FILTER_FLAG_HOST_REQUIRED, FILTER_FLAG_PATH_REQUIRED, FILTER_FLAG_QUERY_REQUIRED | Valide une valeur en tant qu'URL, optionnellement avec un composant requis. | |
| FILTER_VALIDATE_EMAIL | "validate_email" | Valide une valeur en tant qu'e-mail. | ||
| FILTER_VALIDATE_IP | "validate_ip" | FILTER_FLAG_IPV4, FILTER_FLAG_IPV6, FILTER_FLAG_NO_PRIV_RANGE, FILTER_FLAG_NO_RES_RANGE | Valide une valeur en tant qu'une adresse IP, optionnellement, uniquement IPv4 ou IPv6 ou pas, depuis un intervalle privé ou réservé. | |
| FILTER_SANITIZE_STRING | "string" | FILTER_FLAG_NO_ENCODE_QUOTES, FILTER_FLAG_STRIP_LOW, FILTER_FLAG_STRIP_HIGH, FILTER_FLAG_ENCODE_LOW, FILTER_FLAG_ENCODE_HIGH, FILTER_FLAG_ENCODE_AMP | Efface les balises, optionnellement, efface ou encode les caractères spéciaux. | |
| FILTER_SANITIZE_STRIPPED | "stripped" | Alias du filtre "string". | ||
| FILTER_SANITIZE_ENCODED | "encoded" | FILTER_FLAG_STRIP_LOW, FILTER_FLAG_STRIP_HIGH, FILTER_FLAG_ENCODE_LOW, FILTER_FLAG_ENCODE_HIGH | Chaîne encodée pour les URL, optionnellement, efface ou encode les caractères spéciaux. | |
| FILTER_SANITIZE_SPECIAL_CHARS | "special_chars" | FILTER_FLAG_STRIP_LOW, FILTER_FLAG_STRIP_HIGH, FILTER_FLAG_ENCODE_HIGH | Échappement HTML des caractères '"<>& et des caractères dont la valeur ASCII est inférieure à 32, optionnellement, efface ou encode les autres caractères spéciaux. | |
| FILTER_UNSAFE_RAW | "unsafe_raw" | FILTER_FLAG_STRIP_LOW, FILTER_FLAG_STRIP_HIGH, FILTER_FLAG_ENCODE_LOW, FILTER_FLAG_ENCODE_HIGH, FILTER_FLAG_ENCODE_AMP | Ne fait rien, optionnellement, efface ou encode les caractères spéciaux. | |
| FILTER_SANITIZE_EMAIL | "email" | Efface tous les caractères exceptés les lettres, les nombres ainsi que !#$%&'*+-/=?^_`{|}~@.[]. | ||
| FILTER_SANITIZE_URL | "url" | Efface tous les caractères exceptés les lettres, les nombres ainsi que $-_.+!*'(),{}|\\^~[]`<>#%";/?:@&=. | ||
| FILTER_SANITIZE_NUMBER_INT | "number_int" | Efface tous les caractères exceptés les nombres ainsi que +-. | ||
| FILTER_SANITIZE_NUMBER_FLOAT | "number_float" | FILTER_FLAG_ALLOW_FRACTION, FILTER_FLAG_ALLOW_THOUSAND, FILTER_FLAG_ALLOW_SCIENTIFIC | Efface tous les caractères exceptés les nombres, +- et, optionnellement, .,eE. | |
| FILTER_SANITIZE_MAGIC_QUOTES | "magic_quotes" | Applique la fonction addslashes(). | ||
| FILTER_CALLBACK | "callback" | callback function or method | Appel une fonction utilisateur pour filtrer les données. |
Pré-requis
Ces fonctions sont disponibles dans le module PHP standard, qui est toujours accessible.
Installation
Une note d'installation courte : Exécutez juste la commande suivant :
$ pear install filter |
Configuration à l'exécution
Le comportement de ces fonctions est affecté par la configuration dans le fichier php.ini.
Tableau 2. Options de cnfiguration pour Filter
| Nom | Défaut | Modifiable | Changelog |
|---|---|---|---|
| filter.default | unsafe_raw | PHP_INI_PERDIR | |
| filter.default_flags | PHP_INI_PERDIR |
Voici un éclaircissement sur l'utilisation des directives de configuration.
- filter.default string
Filtre toutes les données transmises via $_GET, $_POST, $_COOKIE and $_REQUEST avec ce filtre. Les données originales peut être accédées via la fonction input_get().
- filter.default_flags integer
Drapeau par défaut pour la fonction filter_data().
Types de ressources
Cette extension ne définit aucune ressource.
Constantes pré-définies
Ces constantes sont définies par cette extension, et ne sont disponibles que si cette extension a été compilée avec PHP, ou bien chargée au moment de l'exécution.
- INPUT_POST (entier)
variables POST.
- INPUT_GET (entier)
variables GET.
- INPUT_COOKIE (entier)
variables COOKIE.
- INPUT_ENV (entier)
variables ENV.
- INPUT_SERVER (entier)
variables SERVER.
- INPUT_SESSION (entier)
variables SESSION.
- INPUT_DATA (entier)
Variables définies par l'utilisateur.
- FILTER_FLAG_NONE (entier)
Aucun drappeau.
- FILTER_VALIDATE_INT (entier)
ID du filtre "int".
- FILTER_VALIDATE_BOOLEAN (entier)
ID du filtre "boolean".
- FILTER_VALIDATE_FLOAT (entier)
ID du filtre "float".
- FILTER_VALIDATE_REGEXP (entier)
ID du filtre "validate_regexp".
- FILTER_VALIDATE_URL (entier)
ID du filtre "validate_url".
- FILTER_VALIDATE_EMAIL (entier)
ID du filtre "validate_email".
- FILTER_VALIDATE_IP (entier)
ID du filtre "validate_ip".
- FILTER_DEFAULT (entier)
ID du filtre par défaut ("string").
- FILTER_UNSAFE_RAW (entier)
ID du filtre "unsafe_raw".
- FILTER_SANITIZE_STRING (entier)
ID du filtre "string".
- FILTER_SANITIZE_STRIPPED (entier)
ID du filtre "stripped".
- FILTER_SANITIZE_ENCODED (entier)
ID du filtre "encoded".
- FILTER_SANITIZE_SPECIAL_CHARS (entier)
ID du filtre "special_chars".
- FILTER_SANITIZE_EMAIL (entier)
ID du filtre "email".
- FILTER_SANITIZE_URL (entier)
ID du filtre "url".
- FILTER_SANITIZE_NUMBER_INT (entier)
ID du filtre "number_int".
- FILTER_SANITIZE_NUMBER_FLOAT (entier)
ID du filtre "number_float".
- FILTER_SANITIZE_MAGIC_QUOTES (entier)
ID du filtre "magic_quotes".
- FILTER_CALLBACK (entier)
ID du filtre "callback".
- FILTER_FLAG_SCALAR (entier)
Autorise des types scalaires (pas tableau) seulement dans le filtre. Utilisé présentement par input_get_args().
- FILTER_FLAG_ARRAY (entier)
Autorise seulement les types tableaux dans le filtre. Utilisé présentement par input_get_args().
- FILTER_FLAG_ALLOW_OCTAL (entier)
Alloue une notation octale (0[0-7]+) dans le filtre "int".
- FILTER_FLAG_ALLOW_HEX (entier)
Aloue une notation hexadécimale (0x[0-9a-fA-F]+) dans le filtre "int".
- FILTER_FLAG_STRIP_LOW (entier)
Supprime les caractères dont les valeurs ASCII sont inférieures à 32.
- FILTER_FLAG_STRIP_HIGH (entier)
Supprime les caractères dont les valeurs ASCII sont supérieures à 127.
- FILTER_FLAG_ENCODE_LOW (entier)
Encode les caractères dont les valeurs ASCII sont inférieures à 32.
- FILTER_FLAG_ENCODE_HIGH (entier)
Encode les caractères dont les valeurs ASCII sont supérieures à 127.
- FILTER_FLAG_ENCODE_AMP (entier)
Encode &.
- FILTER_FLAG_NO_ENCODE_QUOTES (entier)
N'encode pas ', ni ".
- FILTER_FLAG_EMPTY_STRING_NULL (entier)
(Non utilisé actuellement.)
- FILTER_FLAG_ALLOW_FRACTION (entier)
Alloue une partie fractionnelle dans le filtre "number_float".
- FILTER_FLAG_ALLOW_THOUSAND (entier)
Alloue le séparateur des milliers (,) dans le filtre "number_float".
- FILTER_FLAG_ALLOW_SCIENTIFIC (entier)
Alloue une notation scientifique (e, E) dans le filtre "number_float".
- FILTER_FLAG_SCHEME_REQUIRED (entier)
Schéma requis dans le filtre "validate_url".
- FILTER_FLAG_HOST_REQUIRED (entier)
Hôte requis dans le filtre "validate_url".
- FILTER_FLAG_PATH_REQUIRED (entier)
Chemin requis dans le filtre "validate_url".
- FILTER_FLAG_QUERY_REQUIRED (entier)
Requête requise dans le filtre "validate_url".
- FILTER_FLAG_IPV4 (entier)
N'autorise que les adresses IPv4 dans le filtre "validate_ip".
- FILTER_FLAG_IPV6 (entier)
N'autorise que les adresses IPv6 dans le filtre "validate_ip".
- FILTER_FLAG_NO_RES_RANGE (entier)
N'autorise pas les adresses réservées dans le filtre "validate_ip".
- FILTER_FLAG_NO_PRIV_RANGE (entier)
N'autorise pas les adresses privées dans le filtre "validate_ip".
- Table des matières
- filter_data -- Filtre les données avec un filtre spécifique
- input_filters_list -- Retourne une liste de tous les filtres supportés
- input_get_args -- Gets multiple variables from outside PHP and optionally filters them
- input_get -- Récupère une variable d'en dehors de PHP et optionnellement, la filtre
- input_has_variable -- Vérifie si une variable d'un type spécifique existe
- input_name_to_filter -- Retourne l'identifiant du filtre par rapport à son nom
Outils (masquer)
S'enregistrer
Liste des Membres
Qui est en ligne?
FAQ