PHP Doku:: Nimmt mehrere Variablen entgegen und filtert sie optional - function.filter-var-array.html

Verlauf / Chronik / History: (1) anzeigen

Sie sind hier:
Doku-StartseitePHP-HandbuchFunktionsreferenzVariablen- und typbezogene ErweiterungenDatenfilterungFilter-Funktionenfilter_var_array

Ein Service von Reinhard Neidl - Webprogrammierung.

Filter-Funktionen

<<filter_list

filter_var>>

filter_var_array

(PHP 5 >= 5.2.0)

filter_var_arrayNimmt mehrere Variablen entgegen und filtert sie optional

Beschreibung

mixed filter_var_array ( array $data [, mixed $definition ] )

Diese Funktion ist sinnvoll um mehrere Werte abzufragen ohne wiederholend filter_var() aufrufen zu müssen.

Parameter-Liste

data

Ein Array mit String-Keys, welches die zu filternden Daten enthält.

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 to 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 Arrays durch diesen Filter gefiltert.

Rückgabewerte

Bei Erfolg wird ein Array zurückgegeben, welches 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.

Beispiele

Beispiel #1 filter_var_array() Beispiel

<?php
error_reporting
(E_ALL E_STRICT);
$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"]=>
  array(1) {
    [0]=>
    string(17) "libgd%3Cscript%3E"
  }
  ["component"]=>
  array(1) {
    [0]=>
    int(10)
  }
  ["versions"]=>
  array(1) {
    [0]=>
    string(6) "2.0.33"
  }
  ["doesnotexist"]=>
  NULL
  ["testscalar"]=>
  bool(false)
  ["testarray"]=>
  array(1) {
    [0]=>
    int(2)
  }
}

Siehe auch

  • filter_input_array() - Nimmt mehrere Variablen von Außen entgegen und filtert sie optional
  • filter_var() - Filtern einer Variablen durch einen spezifischen Filter
  • filter_input() - Nimmt Variable von Außen entgegen und filtert sie optional


3 BenutzerBeiträge:
- Beiträge aktualisieren...
xavier
18.08.2010 22:37
When I run the script on my linux box (php 5.2.10) the output of "Example #1 A filter_var_array() example"
is actually:

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

Notice that the values of "product_id" and "versions" are not arrays.  If you add the FILTER_FORCE_ARRAY flag to the "product_id" and "versions" filter arrays then the output returns as it is outlined in the example.
eguvenc at gmail dot com
7.06.2009 0:45
<?php
//an example of simply sanitize an array..

$data = array(
               
'<b>bold</b>',
               
'<script>javascript</script>',
               
'P*}i@893746%%%p*.i.*}}|.dw<?php echo "echo works!!";?>');

$myinputs = filter_var_array($data,FILTER_SANITIZE_STRING);

var_dump($myinputs);

//OUTPUT:
//formarray(3) { [0]=> string(4) "bold" [1]=> string(10) "javascript" [2]=> string(26) "P*}i@893746%%%p*.i.*}}|.dw" }
?>
Veysel zer
8.06.2007 12:41
Numeric keys are not allowed in the definition array



PHP Powered Diese Seite bei php.net
The PHP manual text and comments are covered by the Creative Commons Attribution 3.0 License © the PHP Documentation Group - Impressum - mail("TO:Reinhard Neidl",...)