filter_input_array

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

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_*.
Внимание

Содержимое фильтруемых суперглобальных переменных – это исходное «сырое» содержимое, предоставленное SAPI, до внесения пользователем каких-либо изменений в суперглобальные переменные. Для фильтрации изменённого суперглобального содержимого используйте функцию filter_var_array().

options
Либо ассоциативный массив (array) опций, либо фильтр, применяемый к каждой записи, который может быть либо фильтром проверки с использованием одной из констант FILTER_VALIDATE_*, либо фильтром очистки с использованием одной из констант FILTER_SANITIZE_*. Массив опций – это ассоциативный массив, в котором ключ соответствует ключу в массиве данных параметра array, а связанное с ним значение – это либо фильтр, который нужно применить к этой записи, либо ассоциативный массив, описывающий, как и какой фильтр должен быть применён к этой записи. Ассоциативный массив, описывающий применение фильтра, должен содержать ключ 'filter', ассоциированным значением которого является применяемый фильтр, который может быть одной из констант FILTER_VALIDATE_*, FILTER_SANITIZE_*, FILTER_UNSAFE_RAW или FILTER_CALLBACK. Дополнительно может содержать ключ 'flags', задающий флаги, которые применяются к фильтру и ключ 'options', задающий любые опции, которые применяются к фильтру.
add_empty

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

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

В случае успешного выполнения, функция возвращает массив (array), содержащий значения запрошенных переменных.

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

Недостающие записи входного массива будут заполнены в возвращаемый массив (array), если значение параметра add_empty равно true. В этом случае отсутствующим записям будем присвоено значение null, если только не используется флаг FILTER_NULL_ON_FAILURE, в этом случае записям будет присвоено значение false.

Элемент возвращаемого массива (array) будет false, если фильтр не сработал, если только не используется флаг FILTER_NULL_ON_FAILURE, в этом случае он будет null.

Примеры

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

<?php

/* данные, полученные методом 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() - Получает конкретную внешнюю переменную по имени и, если нужно, фильтрует значение переменной
  • filter_var() - Фильтрует переменную
  • filter_var_array() - Принимает несколько переменных и, при необходимости, фильтрует их
  • Фильтры проверки: FILTER_VALIDATE_*
  • Фильтры очистки: FILTER_SANITIZE_*