PHP Fonctions de Filtre
Introduction aux Filtres PHP
Les filtres PHP sont utilisés pour valider et filtrer les données provenant de sources non sécurisées, telles que les entrées utilisateur.
Installation
À partir de PHP 5.2.0, les fonctions de filtre sont activées par défaut. Aucune installation n'est nécessaire pour utiliser ces fonctions.
Configurations d'exécution
Le comportement de ces fonctions est influencé par les paramètres dans php.ini :
| Nom | Description | Par défaut | Modifiable |
|---|---|---|---|
| filter.default | Filtrer toutes les données $_GET, $_POST, $_COOKIE, $_REQUEST et $_SERVER avec ce filtre. Accepte le nom du filtre que vous souhaitez utiliser par défaut. Consultez la liste des filtres pour voir les noms de filtres disponibles. | "unsafe_raw" | PHP_INI_PERDIR |
| filter.default_flags | Drapeaux par défaut à appliquer lorsque le filtre par défaut est défini. Ceci est réglé sur FILTER_FLAG_NO_ENCODE_QUOTES par défaut pour des raisons de compatibilité ascendante. | NULL | PHP_INI_PERDIR |
Fonctions de Filtre PHP
| Fonction | Description |
|---|---|
| filter_has_var() | Vérifie si une variable d'un type d'entrée spécifié existe. |
| filter_id() | Renvoie l'ID du filtre correspondant à un nom de filtre spécifié. |
| filter_input() | Obtient une variable externe (par exemple, à partir d'une entrée de formulaire) et la filtre éventuellement. |
| filter_input_array() | Obtient des variables externes (par exemple, à partir d'une entrée de formulaire) et les filtre éventuellement. |
| filter_list() | Renvoie une liste de tous les noms de filtres pris en charge. |
| filter_var() | Filtre une variable avec un filtre spécifié. |
| filter_var_array() | Obtient plusieurs variables et les filtre. |
Constantes de Filtre Prédéfinies PHP
| Constante | Description |
|---|---|
| INPUT_POST | Variables POST. |
| INPUT_GET | Variables GET. |
| INPUT_COOKIE | Variables COOKIE. |
| INPUT_ENV | Variables ENV. |
| INPUT_SERVER | Variables SERVER. |
| FILTER_DEFAULT | Ne rien faire, éventuellement supprimer ou encoder des caractères spéciaux. Équivalent à FILTER_UNSAFE_RAW. |
| FILTER_FLAG_NONE | N'autorise aucun drapeau. |
| FILTER_FLAG_ALLOW_OCTAL | Uniquement pour les entrées qui commencent par un zéro (0) en tant que nombres octaux. Cela n'autorise que les chiffres suivants à être compris entre 0 et 7. |
| FILTER_FLAG_ALLOW_HEX | Uniquement pour les entrées qui commencent par 0x/0X en tant que nombres hexadécimaux. Cela n'autorise que les caractères suivants à être a-fA-F0-9. |
| FILTER_FLAG_STRIP_LOW | Supprime les caractères avec une valeur ASCII inférieure à 32. |
| FILTER_FLAG_STRIP_HIGH | Supprime les caractères avec une valeur ASCII supérieure à 127. |
| FILTER_FLAG_ENCODE_LOW | Encode les caractères avec une valeur ASCII inférieure à 32. |
| FILTER_FLAG_ENCODE_HIGH | Encode les caractères avec une valeur ASCII supérieure à 127. |
| FILTER_FLAG_ENCODE_AMP | Encode &. |
| FILTER_FLAG_NO_ENCODE_QUOTES | Ne pas encoder ' et ". |
| FILTER_FLAG_EMPTY_STRING_NULL | Non utilisé. |
| FILTER_FLAG_ALLOW_FRACTION | Autorise un point (.) comme séparateur fractionnaire dans les nombres. |
| FILTER_FLAG_ALLOW_THOUSAND | Autorise une virgule (,) comme séparateur de milliers dans les nombres. |
| FILTER_FLAG_ALLOW_SCIENTIFIC | Autorise un e ou E pour la notation scientifique dans les nombres. |
| FILTER_FLAG_PATH_REQUIRED | L'URL doit contenir une partie chemin. |
| FILTER_FLAG_QUERY_REQUIRED | L'URL doit contenir une chaîne de requête. |
| FILTER_FLAG_IPV4 | Autorise l'adresse IP à être au format IPv4. |
| FILTER_FLAG_IPV6 | Autorise l'adresse IP à être au format IPv6. |
| FILTER_FLAG_NO_RES_RANGE | Échoue la validation pour les plages IPv4 réservées : 0.0.0.0/8, 169.254.0.0/16, 127.0.0.0/8 et 240.0.0.0/4, ainsi que pour les plages IPv6 réservées : ::1/128, ::/128, ::ffff:0:0/96 et fe80::/10. |
| FILTER_FLAG_NO_PRIV_RANGE | Échoue la validation pour les plages IPv4 privées : 10.0.0.0/8, 172.16.0.0/12 et 192.168.0.0/16, ainsi que pour les adresses IPv6 commençant par FD ou FC. |
| FILTER_FLAG_EMAIL_UNICODE | Autorise la partie locale de l'adresse e-mail à contenir des caractères Unicode. |
| FILTER_REQUIRE_SCALAR | La valeur doit être un scalaire. |
| FILTER_REQUIRE_ARRAY | La valeur doit être un tableau. |
| FILTER_FORCE_ARRAY | Traite une valeur scalaire comme un tableau avec la valeur scalaire comme seul élément. |
| FILTER_NULL_ON_FAILURE | Renvoie NULL en cas d'échec pour des valeurs booléennes non reconnues. |
| FILTER_VALIDATE_BOOLEAN | Valide un booléen. |
| FILTER_VALIDATE_EMAIL | Valide la valeur comme une adresse e-mail valide. |
| FILTER_VALIDATE_FLOAT | Valide la valeur comme un float. |
| FILTER_VALIDATE_INT | Valide la valeur comme un entier. |
| FILTER_VALIDATE_IP | Valide la valeur comme une adresse IP. |
| FILTER_VALIDATE_MAC | Valide la valeur comme une adresse MAC. |
| FILTER_VALIDATE_REGEXP | Valide la valeur par rapport à une expression régulière. |
| FILTER_VALIDATE_URL | Valide la valeur comme une URL. |
| FILTER_SANITIZE_ADD_SLASHES | Ajouté comme remplacement pour FILTER_SANITIZE_MAGIC_QUOTES. |
| FILTER_SANITIZE_EMAIL | Supprime tous les caractères illégaux d'une adresse e-mail. |
| FILTER_SANITIZE_ENCODED | Supprime ou encode des caractères spéciaux. |
| FILTER_SANITIZE_MAGIC_QUOTES | Applique addslashes(). Obsolète dans PHP 7.3.0 et supprimé dans PHP 8.0.0 |
| FILTER_SANITIZE_NUMBER_FLOAT | Supprime tous les caractères, sauf les chiffres, les signes +- et éventuellement .,eE. |
| FILTER_SANITIZE_NUMBER_INT | Supprime tous les caractères sauf les chiffres et les signes + -. |
| FILTER_SANITIZE_SPECIAL_CHARS | Supprime les caractères spéciaux. |
| FILTER_SANITIZE_STRING | Supprime les balises et les caractères spéciaux d'une chaîne. Obsolète dans PHP 8.1.0 |
| FILTER_SANITIZE_STRIPPED | Alias de FILTER_SANITIZE_STRING. Obsolète dans PHP 8.1.0 |
| FILTER_SANITIZE_URL | Supprime tous les caractères illégaux d'une URL. |
| FILTER_UNSAFE_RAW | Ne rien faire, éventuellement supprimer ou encoder des caractères spéciaux. |
| FILTER_CALLBACK | Appelle une fonction définie par l'utilisateur pour filtrer les données. |