array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'ru', ), 'this' => array ( 0 => 'function.filter-var.php', 1 => 'filter_var', ), 'up' => array ( 0 => 'ref.filter.php', 1 => 'Функции фильтрации данных', ), 'prev' => array ( 0 => 'function.filter-var-array.php', 1 => 'filter_var_array', ), 'next' => array ( 0 => 'book.funchand.php', 1 => 'Управление функциями', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'ru', 'path' => 'reference/filter/functions/filter-var.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 5 >= 5.2.0, PHP 7, PHP 8)
filter_var — Фильтрует переменную с помощью определённого фильтра
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) }