(PHP 5 >= 5.2.0, PHP 7, PHP 8)
filter_var_array — Récupère plusieurs variables et les filtre
$array
, array|int$options
= FILTER_DEFAULT
, bool$add_empty
= true
): array|false|nullCette fonction est utile pour récupérer plusieurs valeurs sans appeler plusieurs fois la fonction filter_var().
array
Un tableau avec les clés contenant les données à filtrer.
options
Un tableau définissant les arguments. Une clé valide est une chaîne de caractères contenant le nom de la variable et une valeur valide est soit le type d'un filtre, soit un tableau spécifiant le filtre, les drapeaux et les options. Si la valeur est un tableau, les clés valides sont filter
qui spécifie le type du filtre, flags
qui spécifie tous les drapeaux à appliquer au filtre, et options
qui spécifie toutes les options à appliquer au filtre. Voir l'exemple ci-dessous pour une meilleure compréhension.
Ce paramètre peut également être un entier contenant une constante de filtre. Ensuite, toutes les valeurs du tableau d'entrée seront filtrées par ce filtre.
add_empty
Ajout des clés manquantes à la valeur null
dans la valeur retournée.
Un tableau contenant les valeurs des variables demandées en cas de succès, ou false
si une erreur survient. Un tableau de valeurs peut valoir false
si le filtre échoue, ou null
si la variable n'est pas définie.
Exemple #1 Exemple avec filter_var_array()
<?php
$data = array(
'product_id' => 'libgd<script>',
'component' => '10',
'versions' => '2.0.33',
'testscalar' => array('2', '23', '10', '12'),
'testarray' => '2',
);
$args = array(
'product_id' => FILTER_SANITIZE_ENCODED,
'component' => array('filter' => FILTER_VALIDATE_INT,
'flags' => FILTER_FORCE_ARRAY,
'options' => array('min_range' => 1, 'max_range' => 10)
),
'versions' => FILTER_SANITIZE_ENCODED,
'doesnotexist' => FILTER_VALIDATE_INT,
'testscalar' => array(
'filter' => FILTER_VALIDATE_INT,
'flags' => FILTER_REQUIRE_SCALAR,
),
'testarray' => array(
'filter' => FILTER_VALIDATE_INT,
'flags' => FILTER_FORCE_ARRAY,
)
);
$myinputs = filter_var_array($data, $args);
var_dump($myinputs);
echo "\n";
?>
L'exemple ci-dessus va afficher :
array(6) { ["product_id"]=> string(17) "libgd%3Cscript%3E" ["component"]=> array(1) { [0]=> int(10) } ["versions"]=> string(6) "2.0.33" ["doesnotexist"]=> NULL ["testscalar"]=> bool(false) ["testarray"]=> array(1) { [0]=> int(2) } }