filter_input_array

(PHP 5 >= 5.2.0, PHP 7)

filter_input_arrayПолучает несколько переменных извне PHP и, при необходимости, фильтрует их

Описание

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

Эта функция полезна для получения множества переменных без многократного вызова функции filter_input().

Список параметров

type

Одна из констант INPUT_GET, INPUT_POST, INPUT_COOKIE, INPUT_SERVER или INPUT_ENV.

options

Массив, определяющий аргументы. Допустимый ключ - строка (string), содержащая имя переменной, а допустимое значение - либо тип фильтра, либо массив (array), при необходимости определяющий фильтр, флаги и параметры. Если значение является массивом, допустимыми ключами являются filter, который определяет (тип фильтра ), flags, который определяет любые флаги, применяемые к фильтру и options, который определяет любые параметры, применяемые к фильтру. См. пример ниже для лучшего понимания.

Этот параметр также может быть целым числом, содержащим предопределенную фильтровую константу. Затем все значения во входном массиве фильтруются этим фильтром.

add_empty

Добавляет в результат отсутствующие ключи со значением null.

Возвращаемые значения

Массив, содержащий значения запрошенных переменных в случае успешного выполнения. Если входной массив, определяемый параметром type, не заполнен, то функция вернет null, если флаг FILTER_NULL_ON_FAILURE не задан, false в противном случае. Для других неудачных выполнений возвращается false

Значение массива будет false, если фильтрация завершилась неудачей, или null, если переменная не определена. Либо, если установлен флаг FILTER_NULL_ON_FAILURE, возвращается false, если переменная не определена и null, если фильтрация завершилась неудачей. Если параметр add_empty равен false, элемент массива не будет добавлен для удаленных переменных.

Примеры

Пример #1 Пример использования filter_input_array()

<?php
error_reporting
(E_ALL E_STRICT);
/* данные, полученные методом 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";
?>

Результат выполнения данного примера:

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

Примечания

Замечание:

В массиве INPUT_SERVER нет ключа REQUEST_TIME, потому что он будет позднее в $_SERVER.

Смотрите также

  • filter_input() - Принимает переменную извне PHP и, при необходимости, фильтрует ее
  • filter_var_array() - Принимает несколько переменных и, при необходимости, фильтрует их
  • Типы фильтров