(PHP 5 >= 5.2.0, PHP 7, PHP 8)
filter_var — Фильтрует переменную
Фильтрация переменной с помощью фильтров проверки (FILTER_VALIDATE_*
),
фильтров очистки (FILTER_SANITIZE_*
) или пользовательского фильтра.
value
Перед фильтрацией скалярные значения преобразуются в строку.
filter
FILTER_VALIDATE_*
,
фильтром очистки с помощью одной из констант FILTER_SANITIZE_*
,
FILTER_UNSAFE_RAW
или пользовательским фильтром с помощью константы FILTER_CALLBACK
.
Замечание: По умолчанию используется
FILTER_DEFAULT
, который является псевдонимомFILTER_UNSAFE_RAW
. В результате по умолчанию фильтрация не производится.
options
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_VALIDATE_*
FILTER_SANITIZE_*