Manuel PHP
Précédent |  | Suivant

# XLI. 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.

Les filtres suivants existent actuellement, mais vous devriez lire la section sur les constantes de filtres pour plus d'informations sur le comportement de chaque constante :

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 simplement la commande suivant :

    $ pecl install filter

dans votre console.

# 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 |

Pour plus de détails sur les constantes PHP_INI_*, reportez-vous à Annexe G.

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().

  Accepte le nom du filtre que vous voulez utiliser par défaut. Voir la liste des filtres existante pour en connaître les noms.

`filter.default_flags` integer

  Drapeau par défaut.

# 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. (pas encore implémenté)

`INPUT_REQUEST` (entier)

  variables REQUEST. (pas encore implémenté)

`FILTER_FLAG_NONE` (entier)

  Aucun drappeau.

`FILTER_REQUIRE_SCALAR` (entier)

  Drappeau utilisé pour requérir un scalaire en entrée.

`FILTER_REQUIRE_ARRAY` (entier)

  Requière un tableau en entrée.

`FILTER_FORCE_ARRAY` (entier)

  Retourne toujours un tableau.

`FILTER_NULL_ON_FAILURE` (entier)

  Utilsation de `NULL` au lieu de `FALSE` si une erreur survient.

`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_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".

Précédent | Sommaire | Suivant
unlink | Niveau supérieur | filter_has_var