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

Фильтрация переменной с помощью фильтров проверки (FILTER_VALIDATE_*), фильтров очистки (FILTER_SANITIZE_*) или пользовательского фильтра.

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

value
Значение для фильтрации.
Внимание

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

filter
Фильтр, который необходимо применить. Может быть фильтром проверки с помощью одной из констант FILTER_VALIDATE_*, фильтром очистки с помощью одной из констант FILTER_SANITIZE_*, FILTER_UNSAFE_RAW или пользовательским фильтром с помощью константы FILTER_CALLBACK.

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

options
Либо ассоциативный массив (array) опций, либо битовая маска констант флагов фильтра FILTER_FLAG_*. Если параметр filter принимает опции, флаги могут быть предоставлены с помощью значения массива "flags".

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

В случае успешного выполнения функция возвращает отфильтрованные данные. В случае возникновения ошибки возвращается значение false, только если не используется флаг FILTER_NULL_ON_FAILURE, в этом случае возвращается значение null.

Примеры

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

<?php

var_dump
(filter_var('bob@example.com', FILTER_VALIDATE_EMAIL));
var_dump(filter_var('https://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)
}

Пример #3 Пример передачи массива в параметр options

<?php

$options
= [
'options' => [
'min_range' => 10,
],
'flags' => FILTER_FLAG_ALLOW_OCTAL,
];

var_dump(filter_var('0755', FILTER_VALIDATE_INT, $options));
var_dump(filter_var('011', FILTER_VALIDATE_INT, $options));

?>

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

int(493)
bool(false)

Пример #4 Передача флагов напрямую или с помощью массива (array)

<?php

$str
= 'string';

var_dump(filter_var($str, FILTER_VALIDATE_BOOLEAN, FILTER_NULL_ON_FAILURE));
var_dump(filter_var($str, FILTER_VALIDATE_BOOLEAN, ['flags' => FILTER_NULL_ON_FAILURE]));

?>

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

NULL
NULL

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

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