(PHP 5 >= 5.2.0)
filter_var — Фильтрует переменную с помощью определенного фильтра
variable
Значение переменной для фильтрации.
filter
ID используемого фильтра. Список доступных фильтров доступен на странице "Types of filters".
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('[email protected]', FILTER_VALIDATE_EMAIL));
var_dump(filter_var('http://example.com', FILTER_VALIDATE_URL, FILTER_FLAG_PATH_REQUIRED));
?>
Результат выполнения данного примера:
string(15) "[email protected]" bool(false)