(PHP 5 >= 5.2.0, PHP 7, PHP 8)
filter_var_array — Obtêm e opcionalmente filtra múltiplas variáveis
$array
, array|int $options
= FILTER_DEFAULT
, bool $add_empty
= true
): array|false|null
Filtra um array associativo de valores usando filtros de validação
FILTER_VALIDATE_*
,
filtros de sanitização
FILTER_SANITIZE_*
,
ou filtros customizados.
array
options
FILTER_VALIDATE_*
,
ou um filtro de sanitização, usando uma das
constantes
FILTER_SANITIZE_*
.
O array de opções é um array associativo onde a chave corresponde
a uma chave no array
de dados e o valor
associado é o filtro a ser aplicado a esta entrada
ou um array associativo descrevendo como e qual filtro deve ser
aplicado a esta entrada.
O array associativo que descreve como um filtro deve ser aplicado
deve conter a chave 'filter'
cujo valor associado
é o filtro a ser aplicado, que pode ser uma das constantes
FILTER_VALIDATE_*
,
FILTER_SANITIZE_*
,
FILTER_UNSAFE_RAW
ou
FILTER_CALLBACK
.
Opcionalmente, ele pode conter a chave 'flags'
que especifica os sinalizadores que se aplicam ao filtro,
e a chave 'options'
que especifica quaisquer opções
que se aplicam ao filtro.
add_empty
Adiciona chaves ausentes 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 = [
'product_id' => 'libgd<script>',
'component' => '10',
'versions' => '2.0.33',
'testscalar' => ['2', '23', '10', '12'],
'testarray' => '2',
];
$filters = [
'product_id' => FILTER_SANITIZE_ENCODED,
'component' => [
'filter' => FILTER_VALIDATE_INT,
'flags' => FILTER_FORCE_ARRAY,
'options' => [
'min_range' => 1,
'max_range' => 10,
],
],
'versions' => [
'filter' => FILTER_SANITIZE_ENCODED
],
'testscalar' => [
'filter' => FILTER_VALIDATE_INT,
'flags' => FILTER_REQUIRE_SCALAR,
],
'testarray' => [
'filter' => FILTER_VALIDATE_INT,
'flags' => FILTER_FORCE_ARRAY,
],
'doesnotexist' => FILTER_VALIDATE_INT,
];
var_dump(filter_var_array($data, $filters));
?>
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" ["testscalar"]=> bool(false) ["testarray"]=> array(1) { [0]=> int(2) } ["doesnotexist"]=> NULL }
FILTER_VALIDATE_*
FILTER_SANITIZE_*