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

Список очищающих фильтров
ИдентификаторИмяФлагиОписание
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 объявлен устаревшим.
To Top