filter_input_array

(PHP 5 >= 5.2.0, PHP 7)

filter_input_arrayNimmt mehrere Variablen von Außen entgegen und filtert sie optional

Beschreibung

filter_input_array ( int $type [, mixed $definition [, bool $add_empty = TRUE ]] ) : mixed

Diese 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, INPUT_SESSION oder INPUT_ENV.

definition

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 und options 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
error_reporting
(E_ALL E_STRICT);
/* 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)
  }
}

Changelog

Version Beschreibung
5.4.0 Der Paramter add_empty wurde hinzugefügt.

Anmerkungen

Hinweis:

Es gibt keinen REQUEST_TIME Key im INPUT_SERVER Array, weil dieser erst später in $_SERVER eingefügt wird.

Siehe auch