(PHP 5 >= 5.2.0, PHP 7, PHP 8)
filter_var_array — Nimmt mehrere Variablen entgegen und filtert sie optional
$array
, array|int $options
= FILTER_DEFAULT
, bool $add_empty
= true
): array|false|null
Filtert ein assoziatives Array von Werten unter Verwendung von
FILTER_VALIDATE_*
-Validierungsfiltern,
FILTER_SANITIZE_*
-Bereinigungsfiltern
oder benutzerdefinierten Filtern.
array
Ein assoziatives Array, das die zu filternden Daten enthält.
options
FILTER_VALIDATE_*
-Konstanten
verwendet, oder ein Bereinigungsfilter, der eine der
FILTER_SANITIZE_*
-Konstanten
verwendet.
Das Options-Array ist ein assoziatives Array, bei dem der Schlüssel einem
Schlüssel im Daten-Array
entspricht und der
zugehörige Wert entweder der Filter ist, der auf diesen Eintrag
angewendet werden soll, oder ein assoziatives Array, das beschreibt, wie
und welcher Filter auf diesen Eintrag angewendet werden soll.
Das assoziative Array, das beschreibt, wie ein Filter anzuwenden ist,
muss den Schlüssel 'filter'
enthalten, dessen
zugehöriger Wert der anzuwendende Filter ist, der eine der Konstanten
FILTER_VALIDATE_*
,
FILTER_SANITIZE_*
,
FILTER_UNSAFE_RAW
oder
FILTER_CALLBACK
sein kann.
Es kann optional den Schlüssel 'flags'
enthalten, der
alle für den Filter geltenden Flags angibt, und den Schlüssel
'options'
, der alle für den Filter geltenden Optionen
angibt.
add_empty
Nicht vorhandene Schlüssel als null
zum Rückgabewert hinzufügen.
Bei Erfolg wird ein Array zurückgegeben, das alle Werte der angefragten
Variablen enthält, oder false
im Fehlerfall. Ein einzelner Array-Wert ist
false
, wenn das Filtern fehlgeschlagen ist oder null
, wenn die Variable
nicht gesetzt ist.
Beispiel #1 filter_var_array()-Beispiel
<?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));
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
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_*