filter_var_array

(PHP 5 >= 5.2.0)

filter_var_arrayObtêm múltiplas variáveis e opcionalmente as filtra

Descrição

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

Esta função é útil para receber muitos valores sem repetidamente chamar a função filter_var().

Parâmetros

data

Um array com as string contendo a informação a ser filtrada.

definition

Um array definindo os argumentos. Uma chave válida é uma string contendo o nome da variável e um valor com um tipo de filtro, ou um array opcionalmente especificando o filtro, flags e opções. Se o valor é um array, chaves válida são filter que especifica o tipo do filtro, flags que especifica alguma flag aplicada ao filter, e options que especifica uma opção que é aplicada ao filtro. Veja o exemplo abaixo para entender melhor.

Este parâmetro pode ser também um inteiro indincando uma constante da filter. Então todos valores no array de entrada serão filtrados por este filtro.

Valor Retornado

Um array contendo valores das requisitadas variáveis em caso de sucesso, ou FALSE em falha. Um valor da array será FALSE se o filtro falhar, ou NULL se a variável não é definida.

Exemplos

Exemplo #1 Um exemplo da filter_var_array()

<?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";
?>

O exemplo acima irá imprimir:

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

Veja Também

add a note add a note

User Contributed Notes 3 notes

up
2
Veysel zer
6 years ago
Numeric keys are not allowed in the definition array
up
-1
xavier
3 years ago
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.
up
-3
eguvenc at gmail dot com
4 years ago
<?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" }
?>
To Top