Ассоциативный массив параметров либо логическая дизъюнкция (операция
ИЛИ) флагов. Если фильтр принимает параметры, флаги могут быть
указаны в элементе массива "flags". Для фильтра "callback" должен
быть указан тип callback. Фильтр "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'));
?>