Aller au contenu

filter_input_array()

Introduction

PHP propose une gamme de fonctions intégrées pour traiter les entrées utilisateur, et l'une d'elles est filter_input_array(). Cette fonction est utilisée pour filtrer et assainir un tableau entier de données d'entrée. Dans cet article, nous vous fournirons un guide détaillé sur l'utilisation de filter_input_array() en PHP, sa syntaxe et ses avantages.

Syntaxe

La syntaxe de filter_input_array() est la suivante :

La syntaxe PHP de filter_input_array()

php
filter_input_array ( int $type , mixed $definition [, bool $add_empty = true ] ) : mixed

La fonction prend trois paramètres : le type d'entrée (tel que INPUT_GET ou INPUT_POST), la définition des filtres à appliquer aux données d'entrée, et un indicateur booléen optionnel pour indiquer si les valeurs d'entrée vides doivent être ajoutées au tableau retourné. Lorsque $add_empty est true (par défaut), les clés avec des valeurs vides sont incluses dans le résultat. Définissez-le sur false pour les exclure. Par exemple, filter_input_array(INPUT_GET, $filters, false) ne retourne que les clés avec des valeurs non vides. La fonction retourne les données d'entrée filtrées en cas de succès, ou false en cas d'échec.

Utilisation

La fonction filter_input_array() est utilisée pour filtrer et assainir un tableau entier de données d'entrée, telles que des données soumises via un formulaire. Par exemple, le code suivant utilise filter_input_array() pour assainir les entrées utilisateur d'un formulaire :

Exemple de PHP filter_input_array()

php
<?php

$filters = [
    'name' => FILTER_SANITIZE_FULL_SPECIAL_CHARS,
    'age' => FILTER_VALIDATE_INT,
    'email' => FILTER_VALIDATE_EMAIL,
];

$data = filter_input_array(INPUT_POST, $filters);

if ($data === false) {
    // Handle error: input data could not be retrieved
    exit('Input retrieval failed.');
}

// Access or iterate over the sanitized data
foreach ($data as $key => $value) {
    echo $key . ': ' . $value . PHP_EOL;
}

Dans cet exemple, le tableau $filters est utilisé pour définir les filtres à appliquer aux données d'entrée. La fonction filter_input_array() est ensuite utilisée avec la constante INPUT_POST pour récupérer les données d'entrée et appliquer les filtres. Les données assainies résultantes sont stockées dans le tableau $data.

Note sur la compatibilité des versions PHP : FILTER_SANITIZE_STRING a été déprécié dans PHP 8.1 et supprimé dans PHP 8.2. Utilisez toujours FILTER_SANITIZE_FULL_SPECIAL_CHARS pour l'assainissement des chaînes dans les versions modernes de PHP.

Avantages

L'utilisation de filter_input_array() peut aider à améliorer la sécurité et la fiabilité de votre application PHP en filtrant et en assainissant un tableau entier de données d'entrée en une seule fois. En validant les données d'entrée avant de les traiter, vous pouvez vous assurer que votre application n'accepte que des données valides et éviter les failles de sécurité potentielles.

De plus, l'utilisation de fonctions de filtrage peut aider à améliorer la qualité globale de votre code en le rendant plus lisible et plus facile à maintenir. En séparant la logique de validation de la logique de traitement, vous pouvez rendre votre code plus modulaire et plus facile à déboguer.

Conclusion

En conclusion, la fonction filter_input_array() est un outil utile pour filtrer et assainir un tableau entier de données d'entrée dans les applications PHP. En l'utilisant conjointement avec d'autres fonctions de filtrage, vous pouvez améliorer la sécurité et la qualité de votre code, tout en le rendant plus facile à lire et à maintenir.

Pratique

En PHP, quel est l'objectif de la fonction filter_input_array selon les informations fournies sur le site w3docs ?

Trouvez-vous cela utile?

Aperçu dual-run — comparez avec les routes Symfony en production.