filter_var

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

filter_varФильтрует переменную

Описание

filter_var(mixed $value, int $filter = FILTER_DEFAULT, array|int $options = 0): mixed

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

value

Значение, которое требуется отфильтровать. Обратите внимание, что перед фильтрацией скалярные значения внутренне преобразовываются в строку.

filter

Идентификатор (ID) фильтра, который требуется применить. Страница «Типы фильтров» приводит список доступных фильтров.

Если параметр опустили, принимается значение по умолчанию FILTER_DEFAULT, которое эквивалентно значению константы FILTER_UNSAFE_RAW. В результате поведением по умолчанию становится отсутствие фильтрации.

options

Ассоциативный массив параметров или флаги через побитовое ИЛИ. Если фильтр принимает параметры, флаги можно указать в массиве в элементе "flags". Для фильтра "callback" требуется передать значение с типом callable. Фильтр "callback" должен принимать один аргумент, значение для фильтрации и возвращать значение после фильтрации или очистки.

<?php

// Формат для фильтров, которые принимают параметры
$options = array(
'options' => array(
'default' => 3, // Значение, которое вернётся при сбое фильтрации
// Другие параметры
'min_range' => 0
),
'flags' => FILTER_FLAG_ALLOW_OCTAL,
);

$var = filter_var('0755', FILTER_VALIDATE_INT, $options);

// Для фильтров, которые принимают только флаги, флаги разрешается передавать напрямую
$var = filter_var('oops', FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE);

// Для фильтров, которые принимает только флаги, флаги также разрешается передавать как массив
$var = filter_var(
'oops',
FILTER_VALIDATE_BOOLEAN,
array(
'flags' => FILTER_NULL_ON_FAILURE)
);

// Callback-функция фильтра валидации
function foo($value)
{
// Ожидаемый формат: Фамилия, Имена
if (strpos($value, ", ") === false) {
return
false;
}

list(
$surname, $givennames) = explode(", ", $value, 2);

$empty = (empty($surname) || empty($givennames));
$notstrings = (!is_string($surname) || !is_string($givennames));

if (
$empty || $notstrings) {
return
false;
} else {
return
$value;
}
}

$var = filter_var('Doe, Jane Sue', FILTER_CALLBACK, array('options' => 'foo'));

?>

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

Функция возвращает отфильтрованные данные или false, если фильтрация не удалась.

Примеры

Пример #1 Пример использования функции filter_var()

<?php

var_dump
(filter_var('bob@example.com', FILTER_VALIDATE_EMAIL));
var_dump(filter_var('http://example.com', FILTER_VALIDATE_URL, FILTER_FLAG_PATH_REQUIRED));

?>

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

string(15) "bob@example.com"
bool(false)

Пример #2 Пример фильтрации массива

<?php

$emails
= [
"bob@example.com",
"test@example.local",
"invalidemail"
];

var_dump(filter_var($emails, FILTER_VALIDATE_EMAIL, FILTER_REQUIRE_ARRAY));

?>

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

array(3) {
  [0]=>
  string(15) "bob@example.com"
  [1]=>
  string(18) "test@example.local"
  [2]=>
  bool(false)
}

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

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