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

Список очищающих фильтров
Идентификатор Имя Флаги Описание
FILTER_SANITIZE_EMAIL "email"   Удаляет символы, кроме букв, цифр и символов !#$%&'*+-=?^_`{|}~@.[].
FILTER_SANITIZE_ENCODED "encoded" FILTER_FLAG_STRIP_LOW, FILTER_FLAG_STRIP_HIGH, FILTER_FLAG_STRIP_BACKTICK, FILTER_FLAG_ENCODE_LOW, FILTER_FLAG_ENCODE_HIGH Кодирует строку в формат URL, и, если нужно, удаляет или кодирует специальные символы.
FILTER_SANITIZE_MAGIC_QUOTES "magic_quotes"   Применяет функцию addslashes(). (УСТАРЕЛА с PHP 7.3.0 и УДАЛЕНА с PHP 8.0.0, вместо неё указывают FILTER_SANITIZE_ADD_SLASHES.)
FILTER_SANITIZE_ADD_SLASHES "add_slashes"   Применяет функцию addslashes(). (Доступно с PHP 7.3.0.)
FILTER_SANITIZE_NUMBER_FLOAT "number_float" FILTER_FLAG_ALLOW_FRACTION, FILTER_FLAG_ALLOW_THOUSAND, FILTER_FLAG_ALLOW_SCIENTIFIC Удаляет символы, кроме цифр, +- и если нужно, то и .,eE.
FILTER_SANITIZE_NUMBER_INT "number_int"   Удаляет символы, кроме цифр и знаков плюса и минуса.
FILTER_SANITIZE_SPECIAL_CHARS "special_chars" FILTER_FLAG_STRIP_LOW, FILTER_FLAG_STRIP_HIGH, FILTER_FLAG_STRIP_BACKTICK, FILTER_FLAG_ENCODE_HIGH Кодирует символы '"<>& и символы с ASCII-кодом меньше 32 в HTML-сущности, и, если нужно, удаляет или кодирует остальные специальные символы.
FILTER_SANITIZE_FULL_SPECIAL_CHARS "full_special_chars" FILTER_FLAG_NO_ENCODE_QUOTES Эквивалент вызова функции htmlspecialchars() с параметром ENT_QUOTES. Кодирование кавычек отключают установкой флага FILTER_FLAG_NO_ENCODE_QUOTES. Как и функция htmlspecialchars(), этот фильтр учитывает директиву default_charset, и если в последовательности байтов будет обнаружен недопустимый для текущей кодировки символ, то вся строка будет забракована, а результатом будет строка нулевой длины. При установке этого фильтра в качестве фильтра по умолчанию учитывают предупреждение, которое изложено ниже, оно рассказывает об установке флагам по умолчанию значения 0.
FILTER_SANITIZE_STRING "string" FILTER_FLAG_NO_ENCODE_QUOTES, FILTER_FLAG_STRIP_LOW, FILTER_FLAG_STRIP_HIGH, FILTER_FLAG_STRIP_BACKTICK, FILTER_FLAG_ENCODE_LOW, FILTER_FLAG_ENCODE_HIGH, FILTER_FLAG_ENCODE_AMP Удаляет теги и кодирует двойные и одинарные кавычки, а если нужно, удаляет или кодирует специальные символы. Кодирование кавычек можно отключить, установив FILTER_FLAG_NO_ENCODE_QUOTES. (Объявлен устаревшим начиная с PHP 8.1.0, используйте вместо него функцию htmlspecialchars()).
FILTER_SANITIZE_STRIPPED "stripped"   Псевдоним фильтра "string". (Объявлен устаревшим начиная с PHP 8.1.0, используйте вместо него функцию htmlspecialchars()).
FILTER_SANITIZE_URL "url"   Удаляет символы, кроме букв, цифр и $-_.+!*'(),{}|\\^~[]`<>#%";/?:@&=.
FILTER_UNSAFE_RAW "unsafe_raw" FILTER_FLAG_STRIP_LOW, FILTER_FLAG_STRIP_HIGH, FILTER_FLAG_STRIP_BACKTICK, FILTER_FLAG_ENCODE_LOW, FILTER_FLAG_ENCODE_HIGH, FILTER_FLAG_ENCODE_AMP Бездействует, и, если нужно, удаляет или кодирует специальные символы. Этот фильтр — псевдоним фильтра FILTER_DEFAULT.

Внимание

Когда либо в ini-файле, либо в конфигурации веб-сервера один из этих фильтров указан в качестве фильтра по умолчанию, флагом по умолчанию для него будет значение FILTER_FLAG_NO_ENCODE_QUOTES. Необходимо явно установить параметру filter.default_flags значение 0, чтобы по умолчанию кавычки кодировались. Вот так:

Пример #1 Настройка фильтра по умолчанию для работы аналогично функции htmlspecialchars

filter.default = full_special_chars
filter.default_flags = 0

Список изменений

Версия Описание
8.1.0 Фильтры FILTER_SANITIZE_STRING и FILTER_SANITIZE_STRIPPED объявлены устаревшими.
8.0.0 Удалён фильтр FILTER_SANITIZE_MAGIC_QUOTES.
7.3.0 В качестве замены FILTER_SANITIZE_MAGIC_QUOTES добавлен фильтр FILTER_SANITIZE_ADD_SLASHES.
7.3.0 Фильтр FILTER_SANITIZE_MAGIC_QUOTES объявлен устаревшим.