filter_input_array
(PHP 5 >= 5.2.0, PHP 7, PHP 8)
filter_input_array — Nimmt mehrere Variablen von Außen entgegen und filtert sie optional
Beschreibung
$type
, array|int $options
= FILTER_DEFAULT
, bool $add_empty
= true
): array|false|nullDiese Funktion ist nützlich, um mehrere Werte abzufragen ohne wiederholend filter_input() aufrufen zu müssen.
Parameter-Liste
-
type
-
Einer von
INPUT_GET
,INPUT_POST
,INPUT_COOKIE
,INPUT_SERVER
oderINPUT_ENV
. -
options
-
Array dass die Argumente enthält. Ein gültiger Key ist ein string der einen Variablennamen enthält und ein gültiger Wert ist entweder ein Filter oder ein array welches den Filter, seine Flags und Optionen spezifiziert. Wenn der Wert ein Array ist, sind gültige Keys
filter
der den Filtertyp definiert,flags
welches jegliche Flags die den Filter spezifizieren enthält undoptions
welches die Optionen enthält die den Filter beschreiben. Für ein besseres Verständnis sehen Sie sich das Beispiel an.Der Parameter kann auch ein Integer sein der eine Filterkonstante beschreibt. Dann werden alle Werte des Eingabearrays durch diesen Filter gefiltert.
-
add_empty
-
Füge dem Rückgabewert fehlende Keys als
null
hinzu.
Rückgabewerte
Bei Erfolg wird ein Array zurückgegeben, welches alle Werte der angefragten
Variablen enthält.
Ist das durch type
bezeichnete Eingabearray nicht befüllt,
gibt die Funktion null
zurück, wenn die das FILTER_NULL_ON_FAILURE
Flag nicht angegeben wurde, oder false
andernfalls. Bei anderen Fehlern wird
false
zurückgegeben.
Ein einzelner Array-Wert ist
false
, wenn das Filtern fehlgeschlagen ist oder null
, wenn die Variable
nicht gesetzt ist. Wenn das Flag FILTER_NULL_ON_FAILURE
benutzt wurde, wird false
zurückgegeben, wenn die Variable nicht gesetzt ist
und null
, wenn das Filtern fehlgeschlagen ist.
Ist der Parameter add_empty
false
, wird kein Arrayelement
für nicht gesetzte Variablen hinzugefügt.
Beispiele
Beispiel #1 filter_input_array() Beispiel
<?php
/* data actually came from 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";
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
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) } }
Anmerkungen
Hinweis:
Es gibt keinen
REQUEST_TIME
Key imINPUT_SERVER
Array, weil dieser erst später in $_SERVER eingefügt wird.
Siehe auch
- filter_input() - Nimmt eine Variable von Außen entgegen und filtert sie optional
- filter_var_array() - Nimmt mehrere Variablen entgegen und filtert sie optional
- Filtertypen