Maison >développement back-end >Problème PHP >Que sont les filtres PHP ? Quels types de filtres existe-t-il ?
L'article précédent vous a présenté "Comment écrire des fichiers de programme de messagerie en utilisant PHP ? 》, cet article continue de vous présenter qu'est-ce qu'un filtre PHP ? Quels types de filtres existe-t-il ? Allons-y ensemble !
Que sont les filtres PHP ?
Les filtres PHP sont utilisés pour valider et filtrer les données provenant de sources non sécurisées.
Tester, valider et filtrer les entrées utilisateur ou les données personnalisées est une partie importante de toute application Web.
L'extension de filtre de PHP est conçue pour rendre le filtrage des données plus facile et plus rapide.
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 de l'utilisateur.
Pourquoi utiliser des filtres ?
Presque toutes les applications Web reposent sur une entrée externe. Ces données proviennent généralement des utilisateurs ou d'autres applications (telles que des services Web). En utilisant des filtres, vous pouvez vous assurer que votre application obtient le type d'entrée correct.
Vous devez toujours filtrer les données externes !
Le filtrage des entrées est l'un des sujets les plus importants en matière de sécurité des applications.
Qu'est-ce que les données externes ?
Données de saisie des formulaires
Cookies
Données des services Web
Variables du serveur
Résultats de la requête de base de données
Fonction et filtres
Pour filtrer une variable, utilisez l'une des fonctions de filtre suivantes :
filter_var() - filtrer par un filtre spécifié pour filtrer un seul variable
filter_var_array() - filtre plusieurs variables avec des filtres identiques ou différents
filter_input - Obtient une variable d'entrée et le filtre
filter_input_array - Obtient plusieurs variables d'entrée et les exécute à travers des filtres identiques ou différents Filtre
Dans Dans l'exemple suivant, nous utilisons la fonction filter_var() pour vérifier un entier :
<?php $int = 123; if(!filter_var($int, FILTER_VALIDATE_INT)) { echo("不是一个合法的整数"); } else { echo("是个合法的整数"); } ?>
Le résultat de l'exécution du code est le suivant :
Validation et désinfection
Il existe deux types de filtres :
Filtre de validation :
Utilisé pour valider la saisie de l'utilisateur
Règles de formatage strictes (telles que la validation d'URL ou d'e-mail)
Renvoie le type attendu en cas de succès, FALSE en cas d'échec
Filtre de désinfection :
est utilisé pour autoriser ou interdire les caractères spécifiés dans la chaîne
Aucune règle de format de données
Renvoie toujours la chaîne
Options et drapeaux Les options et les drapeaux sont utilisés pour ajouter des options de filtrage supplémentaires au filtre spécifié.
Différents filtres ont des options et des indicateurs différents.
Dans l'exemple ci-dessous, nous validons un entier en utilisant filter_var() avec les options "min_range" et "max_range" :
<?php $var=300; $int_options = array( "options"=>array ( "min_range"=>0, "max_range"=>256 ) ); if(!filter_var($var, FILTER_VALIDATE_INT, $int_options)) { echo("不是一个合法的整数"); } else { echo("是个合法的整数"); } ?>
Juste comme le code ci-dessus, les options doivent être placées dans un tableau associé appelé « options ». Si vous utilisez des indicateurs, ils n'ont pas besoin d'être dans un tableau.
Puisque l'entier est "300", il n'est pas dans la plage spécifiée, la sortie du code ci-dessus sera
Le résultat de l'exécution du code est le suivant :
Filtrer plusieurs entrées
Les formulaires se composent généralement de plusieurs champs de saisie. Pour éviter les appels répétés aux fonctions filter_var ou filter_input, nous pouvons utiliser filter_var_array ou la fonction filter_input_array.
Dans cet exemple, nous utilisons la fonction filter_input_array() pour filtrer trois variables GET. Les variables GET reçues sont un nom, un âge et une adresse e-mail :
<?php $filters = array ( "name" => array ( "filter"=>FILTER_SANITIZE_STRING ), "age" => array ( "filter"=>FILTER_VALIDATE_INT, "options"=>array ( "min_range"=>1, "max_range"=>120 ) ), "email"=> FILTER_VALIDATE_EMAIL ); $result = filter_input_array(INPUT_GET, $filters); if (!$result["age"]) { echo("年龄必须在 1 到 120 之间。<br>"); } elseif(!$result["email"]) { echo("E-Mail 不合法<br>"); } else { echo("输入正确"); } ?>
Les résultats sont les suivants :
Explication des exemples :
L'exemple ci-dessus comporte trois variables d'entrée (nom, âge et email) transmises via la méthode "GET" :
Définissez un tableau qui contient le nom de la variable d'entrée et le filtre utilisé pour la variable d'entrée spécifiée
Appelez la fonction filter_input_array(), les paramètres incluent la variable d'entrée GET et le tableau il suffit de définir
Vérifiez si les variables "age" et "email" dans la variable $result ont une entrée illégale. (S'il y a une entrée illégale, la variable d'entrée est FALSE après avoir utilisé la fonction filter_input_array().)
Le deuxième argument de la fonction filter_input_array() peut être un tableau ou l'ID d'un seul filtre.
Si ce paramètre est l'ID d'un seul filtre, alors le filtre spécifié filtrera toutes les valeurs du tableau d'entrée.
Si le paramètre est un tableau, alors le tableau doit suivre les règles suivantes :
doit être un tableau associatif contenant les variables d'entrée qui sont les clés du tableau (Par exemple, variable d'entrée "age")
La valeur de ce tableau doit être l'ID du filtre, ou un tableau spécifiant des filtres, des drapeaux et des options
Apprentissage recommandé :《Tutoriel vidéo PHP》
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!