filter_input_array

(PHP 5 >= 5.2.0, PHP 7, PHP 8)

filter_input_arrayObtem variáveis externas e opcionalmente as filtra

Descrição

filter_input_array(int $type, array|int $options = FILTER_DEFAULT, bool $add_empty = true): array|false|null

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

Parâmetros

type

Uma das constantes INPUT_GET, INPUT_POST, INPUT_COOKIE, INPUT_SERVER ou INPUT_ENV.

options

Um array definindo os argumentos. Uma chave válida é uma string contendo um 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álidas são filter que especifica o tipo de filtro, flags que especifica quaisquer marcas que se aplicam ao filtro, e options que especifica quaisquer opções que serão aplicadas ao filtro. Veja os exemplos abaixo para um melhor entendimento.

Este parâmetro pode ser também um inteiro contendo uma constante de filtro. Desta forma, todos os valores no array de entrada serão filtradas por este filtro.

add_empty

Adiciona chaves faltantes como null ao valor de retorno.

Valor Retornado

Um array contendo os valores das variáveis requisitads em caso de sucesso. Se o array de entrada designado por type não for preenchido, a função retorna null se a marca FILTER_NULL_ON_FAILURE não for fornecida, ou false caso contrário. Para outras falhas, false é retornado.

Um valor de array será false se o filtro falhar, ou null se a variável não estiver definida. Ou, se a marca FILTER_NULL_ON_FAILURE for usada, a função retorna false se a variável não estiver definida e null se o filtro falhar. Se o parâmetro add_empty for false, nenhum elemento de array será adicionado para variáveis não definidas.

Exemplos

Example #1 Um exemplo da filter_input_array()

<?php

/* dados realmente vieram de POST
$_POST = array(
    'product_id' => 'libgd<script>',
    'component'  => array('10'),
    'version'    => '2.0.33',
    'testarray'  => array('2', '23', '10', '12'),
    'testscalar' => '2',
);
*/

$args = array(
    'product_id'   => FILTER_SANITIZE_ENCODED,
    'component'    => array('filter'    => FILTER_VALIDATE_INT,
                            'flags'     => FILTER_REQUIRE_ARRAY,
                            'options'   => array('min_range' => 1, 'max_range' => 10)
                           ),
    'version'     => 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_REQUIRE_ARRAY,
                           )

);

$myinputs = filter_input_array(INPUT_POST, $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)
  }
  ["version"]=>
  string(6) "2.0.33"
  ["doesnotexist"]=>
  NULL
  ["testscalar"]=>
  int(2)
  ["testarray"]=>
  array(4) {
    [0]=>
    int(2)
    [1]=>
    int(23)
    [2]=>
    int(10)
    [3]=>
    int(12)
  }
}

Notas

Note:

Não existe a chave REQUEST_TIME no array INPUT_SERVER porque ela será inserida na variável $_SERVER mais tarde.

Veja Também