(PHP 5 >= 5.2.0, PHP 7, PHP 8)
filter_input_array — Récupère plusieurs valeurs externes et les filtre
$type
, array|int $options
= FILTER_DEFAULT
, bool $add_empty
= true
): array|false|nullCette fonction est utile pour récupérer plusieurs valeurs sans avoir à appeler plusieurs fois la fonction filter_input().
type
Une constante parmi INPUT_GET
, INPUT_POST
,
INPUT_COOKIE
, INPUT_SERVER
ou
INPUT_ENV
.
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.
Si le tableau d'entrée désigné par type
n'est pas populé,
la fonction retourne null
si le drapeau FILTER_NULL_ON_FAILURE
n'est pas donnée, sinon false
dans le cas contraire. Pour les autres échecs, false
est retourné.
Un tableau de valeurs peut valoir false
si le filtre échoue,
ou null
si la variable n'est pas définie. Ou, si le drapeau
FILTER_NULL_ON_FAILURE
est utilisé, la fonction retournera
false
si la variable n'est pas définie et null
si le filtre échoue.
Si le paramètre add_empty
est false
,
aucun élément du tableau sera ajouté pour les variables non définie.
Exemple #1 Exemple avec filter_input_array()
<?php
/* les données arrivent depuis POST
$_POST = array(
'product_id' => 'libgd<script>',
'component' => array('10'),
'version' => '2.0.33',
'testarray' => array('2', '23', '10', '12'),
'testscalar' => '2',
);
*/
$args = array(
'product_id' => FILTER_SANITIZE_ENCODED,
'component' => array('filter' => FILTER_VALIDATE_INT,
'flags' => FILTER_REQUIRE_ARRAY,
'options' => array('min_range' => 1, 'max_range' => 10)
),
'version' => 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_REQUIRE_ARRAY,
)
);
$myinputs = filter_input_array(INPUT_POST, $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) } ["version"]=> string(6) "2.0.33" ["doesnotexist"]=> NULL ["testscalar"]=> int(2) ["testarray"]=> array(4) { [0]=> int(2) [1]=> int(23) [2]=> int(10) [3]=> int(12) } }
Note:
Il n'y a pas de clé
REQUEST_TIME
dans le tableauINPUT_SERVER
car elle est insérée dans la variable $_SERVER plus tard.