(PHP 5 >= 5.2.0, PHP 7)
filter_var_array — Obtêm múltiplas variáveis e opcionalmente as filtra
Esta função é útil para receber muitos valores sem repetidamente chamar a função filter_var().
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.
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.
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) } }