(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|null
Filtrer un tableau associatif de valeur en utilisant un filtre de validation
FILTER_VALIDATE_*
,
un filtre de purification
FILTER_SANITIZE_*
,
ou un filtre personalisé.
array
options
FILTER_VALIDATE_*
,
un filtre de purification en utilisant une des constantes
FILTER_SANITIZE_*
.
Le tableau d'options est un tableau associatif où les clés correspondent
à une clé dans les données array
et la valeur
associée est soit le filtre à appliquer à cette entrée,
soit un tableau associatif qui décrit comment et quel filtre devrait
être appliqué à cette entrée.
Le tableau associatif qui décrit comme un filtre devrait être appliqué
doit contenir la clé 'filter'
dont sa valeur associée
est le filtre à appliquer, qui peut être une des constantes
FILTER_VALIDATE_*
,
FILTER_SANITIZE_*
,
FILTER_UNSAFE_RAW
, ou
FILTER_CALLBACK
.
Il peut contenir facultativement la clé 'flags'
qui spécifie les drapeaux à appliquer au filtre,
et la clé 'options'
qui spécifie toute option
qui s'applique au filtre.
add_empty
Ajoute les clés manquantes en tant que null
dans la valeur de retour.
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 = [
'product_id' => 'libgd<script>',
'component' => '10',
'versions' => '2.0.33',
'testscalar' => ['2', '23', '10', '12'],
'testarray' => '2',
];
$filters = [
'product_id' => FILTER_SANITIZE_ENCODED,
'component' => [
'filter' => FILTER_VALIDATE_INT,
'flags' => FILTER_FORCE_ARRAY,
'options' => [
'min_range' => 1,
'max_range' => 10,
],
],
'versions' => [
'filter' => FILTER_SANITIZE_ENCODED
],
'testscalar' => [
'filter' => FILTER_VALIDATE_INT,
'flags' => FILTER_REQUIRE_SCALAR,
],
'testarray' => [
'filter' => FILTER_VALIDATE_INT,
'flags' => FILTER_FORCE_ARRAY,
],
'doesnotexist' => FILTER_VALIDATE_INT,
];
var_dump(filter_var_array($data, $filters));
?>
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" ["testscalar"]=> bool(false) ["testarray"]=> array(1) { [0]=> int(2) } ["doesnotexist"]=> NULL }
FILTER_VALIDATE_*
FILTER_SANITIZE_*