(PHP 5 >= 5.2.0, PHP 7, PHP 8)
filter_var_array — Obtêm múltiplas variáveis e opcionalmente as filtra
$array
, array|int $options
= FILTER_DEFAULT
, bool $add_empty
= true
): array|false|nullEsta função é útil para receber muitos valores sem repetidamente chamar a função filter_var().
array
Um array com as chaves string contendo os dados a filtrar.
options
Um array definindo os argumentos. Uma chave válida é uma string
contendo o nome da variável, e um valor válido é um
tipo de filtro ou um
array opcionalmente especificando o filtro, marcas e opções.
Se o valor for um array, chaves válida são filter
que especifica o tipo de filtro,
flags
que especifica alguma marca aplicada ao
filtro, e options
que especifica uma opção
que é aplicada ao filtro. Veja o exemplo abaixo para um melhor entendimento.
Este parâmetro pode ser também um inteiro contendo uma constante de filtro. Desta forma, todos valores no array de entrada serão filtrados por este filtro.
add_empty
Adiciona chaves faltantes como null
ao valor de retorno.
Um array contendo valores das variáveis requisitadas em caso de sucesso, ou false
em caso de falha. Um valor de array será false
se o filtro falhar, ou null
se
a variável não estiver definida.
Exemplo #1 Um exemplo de filter_var_array()
<?php
$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 produzirá:
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) } }