(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|nullDiese Funktion ist nützlich, um mehrere Werte abzufragen, ohne wiederholt filter_var() aufrufen zu müssen.
array
Ein Array mit String-Schlüsseln, welches die zu filternden Daten enthält.
options
Ein Array, das die Argumente enthält. Ein gültiger Schlüssel ist ein
String, der einen Variablennamen enthält, und ein
gültiger Wert ist entweder ein
Filtertyp oder ein
Array, das den Filter, seine Flags und Optionen
spezifiziert. Wenn der Wert ein Array ist, sind gültige Schlüssel
filter
, der den
Filtertyp angibt,
flags
, der jegliche Flags enthält, die den Filter
spezifizieren, und options
welcher die Optionen
enthält, die den Filter beschreiben. Für ein besseres Verständnis ist
das Beispiel weiter unten zu konsultieren.
Der Parameter kann auch ein Integer sein der eine Filterkonstante beschreibt. Dann werden alle Werte des Arrays durch diesen Filter gefiltert.
add_empty
Nicht vorhandene Schlüssel werden als null
zum Rückgabewert
hinzugefügt.
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 = 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";
?>
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" ["doesnotexist"]=> NULL ["testscalar"]=> bool(false) ["testarray"]=> array(1) { [0]=> int(2) } }