(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) } }