ProfiPHPProfiPHP
Категория: Функции обработки строк

Функция Filter_var

Функция Filter_var фильтрует переменную с помощью определенного фильтра.
mixed filter_var( mixed $variable [, int $filter = FILTER_DEFAULT [, mixed $options ]] )
В параметре Variable указывается значение переменной для фильтрации. Скалярные значения перед фильтрацией преобразуются к строкам.

Параметр Filter являет собой идентификатор применяемого фильтра. Если не указан, то используется фильтр FILTER_DEFAULT, который по умолчанию не применяет никакого фильтра.

В параметре Options указывается ассоциативный массив параметров либо логическая дизъюнкция (операция ИЛИ) флагов. Если фильтр принимает параметры, флаги могут быть указаны в элементе массива "flags". Для фильтра "callback" должен быть указан тип callable. Фильтр "callback" должен принимать один аргумент, значение для фильтрации, и возвращать значение после фильтрации.

Список фильтров валидации данных

FILTER_VALIDATE_BOOLEAN. Возвращает TRUE для значений "1", "true", "on" и "yes". Иначе возвращает FALSE. Если установлен флаг FILTER_NULL_ON_FAILURE, то FALSE возвращается только для значений "0", "false", "off", "no" и "", а NULL будет возвращен для всех небулевых значений.

FILTER_VALIDATE_EMAIL. Проверяет, что значение является корректным E-mail. В целом, происходит проверка синтаксиса адреса в соответствии с RFC 822, с тем исключением, что не поддерживаются комментарии, схлопывание пробельных символов и доменные имена без точек.

FILTER_VALIDATE_FLOAT. Проверяет, что значение является корректным числом с плавающей точкой.

FILTER_VALIDATE_INT. Проверяет, что значение является корректным целым числом, и, при необходимости, входит в определенный диапазон.

FILTER_VALIDATE_IP. Проверяет, что значение является корректным IP-адресом, при необходимости только для протоколов Ipv4 (FILTER_FLAG_IPV4) или Ipv6 (FILTER_FLAG_IPV6), а также отсутствие вхождения в частные или зарезервированные диапазоны.

FILTER_VALIDATE_MAC. Проверяет, что значение - это корректный MAC-адрес.

FILTER_VALIDATE_REGEXP. Проверяет значение на соответствие regexp, Perl-совместимому регулярному выражению.

FILTER_VALIDATE_URL. Проверяет значение как URL, опционально с требуемыми компонентами.

Очищающие фильтры

FILTER_SANITIZE_EMAIL. Удаляет все символы, кроме букв, цифр и !#$%&'*+-=?^_`{|}~@.[].

FILTER_SANITIZE_ENCODED. Кодирует строку в формат URL, при необходимости удаляет или кодирует специальные символы.

FILTER_SANITIZE_MAGIC_QUOTES. Применяется функция Addslashes.

FILTER_SANITIZE_NUMBER_FLOAT. Удаляет все символы, кроме цифр, +- и, при необходимости, .,eE.

FILTER_SANITIZE_NUMBER_INT. Удаляет все символы, кроме цифр и знаков плюса и минуса.

FILTER_SANITIZE_SPECIAL_CHARS. Экранирует HTML-символы '"<>& и символы с ASCII-кодом, меньшим 32, при необходимости удаляет или кодирует остальные специальные символы.

FILTER_SANITIZE_FULL_SPECIAL_CHARS. Эквивалентно вызову Htmlspecialchars с установленным параметром ENT_QUOTES.

FILTER_SANITIZE_STRING. Удаляет тэги, при необходимости удаляет или кодирует специальные символы.

FILTER_SANITIZE_URL. Удаляет все символы, кроме букв, цифр и $-_.+!*'(),{}|\\^~[]`<>#%";/?:@&=.

FILTER_UNSAFE_RAW. Бездействует, при необходимости удаляет или кодирует специальные символы. Этот фильтр так же является синонимом FILTER_DEFAULT.

Также существует FILTER_CALLBACK. Вызывается пользовательская функция для фильтрации данных.

Нужно быть крайне внимательным при использовании функции Filter_var и всегда тестировать возвращаемые значение. Если использовать Регулярные выражения в PHP, можно полностью контролировать обработку строки но, возможно, с пониженной скоростью работы.

Большинство программистов не полагаются на функцию Filter_var используя регулярные выражения, которые могут полностью выполнять все те же действия, только с более тонкой настройкой шаблона.

Добавить комментарий

Имя:
Текст комментария: