Русская документация под данному фильтру,оставляет желать лучшего.Но вот что удалось узнать мне.
Долгое время для нас эталоном качества проверки Email адреса был следующий код
Но с появлением функции Filter_Var в php 5.2.0 и выше
Стало легче жить
Передавая правильный аргумент функции мы можем быстро определить,является ли входящие данные валидными (В нашем случае это Email адрес)
Некоторые типы проверки позволяют использовать так называемые "Флаги",которые служат как доп.настройки.
Это легче обьяснить в коде.
Допустим
И это далеко не все.Хотя существует не мало FILTER_VALIDATE_ * опций,существуют так же FILTER_SANITIZE_ * фильтры.Они предназначены для проверки ввода.
Например:
По скольку информацию на русском мало где можно найти я перечислю примерно функции и флаги,Плюс их значения
Очистка
FILTER_SANITIZE_STRING: Этот фильтр удаляет данные, которые потенциально вредны для вашего приложения. Он используется для полосе теги и удалить нежелательные или кодирования символов.
Доступные "флаги"
- FILTER_FLAG_NO_ENCODE_QUOTES - этот флаг не кодирует котировки
- FILTER_FLAG_STRIP_LOW - Фильтр символов ASCII значение ниже 32
- FILTER_FLAG_STRIP_HIGH - Фильтр символов ASCII, стоимость которых превышает 127
- FILTER_FLAG_ENCODE_LOW - Кодирование символов ASCII значение ниже 32
- FILTER_FLAG_ENCODE_HIGH - Кодирование символов ASCII, стоимость которых превышает 127
- FILTER_FLAG_ENCODE_AMP - Кодирование символов & &
FILTER_SANITIZE_STRIPPED: Псевдоним для FILTER_SANITIZE_STRING, как показано выше.
FILTER_SANITIZE_ENCODED: Фильтр ленты или URL-кодирует нежелательных символов. Подобно urlencode ().
Доступные "флаги"
- FILTER_FLAG_STRIP_LOW - Фильтр символов ASCII значение ниже 32
- FILTER_FLAG_STRIP_HIGH - Фильтр символов ASCII, стоимость которых превышает 32
- FILTER_FLAG_ENCODE_LOW - Кодирование символов ASCII значение ниже 32
- FILTER_FLAG_ENCODE_HIGH - Кодирование символов ASCII, стоимость которых превышает 32
FILTER_SANITIZE_SPECIAL_CHARS: HTML-фильтра Экранирует специальные символы.
Доступные "флаги"
- FILTER_FLAG_STRIP_LOW - Фильтр символов ASCII значение ниже 32
- FILTER_FLAG_STRIP_HIGH - Фильтр символов ASCII, стоимость которых превышает 32
- FILTER_FLAG_ENCODE_HIGH - Кодирование символов ASCII, стоимость которых превышает 32
FILTER_SANITIZE_EMAIL: фильтр удаляет все незаконные электронная почта символы в строке.
FILTER_SANITIZE_URL: фильтр удаляет все незаконные URL символы в строке.
FILTER_SANITIZE_NUMBER_INT: фильтр удаляет все символы из незаконных номер.
FILTER_SANITIZE_NUMBER_FLOAT: фильтр удаляет все символы из незаконных число с плавающей точкой.
FILTER_SANITIZE_MAGIC_QUOTES: фильтр выполняет addslashes () для строки.
Проверка входного
FILTER_VALIDATE_INT: проверяет значение как целое.
Доступные "флаги"
- min_range - задает минимальное значение числа (пример кода)
- max_range - задает максимальную величину Integer
- FILTER_FLAG_ALLOW_OCTAL - позволяет восьмеричное значение числа
- FILTER_FLAG_ALLOW_HEX - позволяет шестнадцатеричных значений числа
FILTER_VALIDATE_BOOLEAN: проверяет значение как логический вариант.
FILTER_VALIDATE_FLOAT: проверяет значение как число с плавающей точкой.
FILTER_VALIDATE_REGEXP: проверяет значение против Perl-совместимых регулярных выражений.
FILTER_VALIDATE_URL: проверяет значение как URL.
Доступные "флаги"
- FILTER_FLAG_SCHEME_REQUIRED - Требует URL для RFC совместимость URL (например, http://example)
- FILTER_FLAG_HOST_REQUIRED - Требует URL включить имя хоста (например, http://www.example.com)
- FILTER_FLAG_PATH_REQUIRED - Требует URL иметь пути после имени домена (например,
- FILTER_FLAG_QUERY_REQUIRED - Требует URL иметь строку запроса (например, "example.php? Имя = Peter & возраст = 37")
FILTER_VALIDATE_EMAIL: проверяет значение в качестве электронной почты.
FILTER_VALIDATE_IP: проверяет значение как IPv4 или IPv6.
Доступные "флаги"
- FILTER_FLAG_IPV4 - требует от значения, которое будет действительным IPv4 IP (например, 255.255.255.255)
- FILTER_FLAG_IPV6 - требует от значения, которое будет действительным IP IPv6 (например, 2001:0 db8: 85a3: 08D3: 1319:8 A2E: 0370:7334)
- FILTER_FLAG_NO_PRIV_RANGE - требует от значения, которое будет указано RFC IP, а не в частном диапазоне (например 192.168.0.1, 10.0.0.1, ...)
- FILTER_FLAG_NO_RES_RANGE - Предполагается, что значение не входит в диапазон IP защищены. Этот флаг имеет IPv4 и IPv6 ценностей. Защищены ИС может быть 255.255.255.255 (широковещательный адрес).
Часть информации описание "флагов" и "фильтров" были взяты из интернета,источник не известен.
Остальная информация и примеры были написаны RDL Team специально для dapf.ru
© RDL Team & dapf.ru
Долгое время для нас эталоном качества проверки Email адреса был следующий код
Код:
if (!eregi("^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*(.[a-z]{2,4})$", $email)) {
echo "Не корректный e-mail адрес.";
}
Но с появлением функции Filter_Var в php 5.2.0 и выше
Стало легче жить
Код:
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
echo "Неверный e-mail";
}
Передавая правильный аргумент функции мы можем быстро определить,является ли входящие данные валидными (В нашем случае это Email адрес)
Некоторые типы проверки позволяют использовать так называемые "Флаги",которые служат как доп.настройки.
Это легче обьяснить в коде.
Допустим
Код:
$url = "google.ru"; // Для корректного определения требуется ввод с '[url]http://'[/url]
if (!filter_var($url, FILTER_VALIDATE_URL, FILTER_FLAG_SCHEME_REQUIRED)) {
echo "Неверный URL";
}
И это далеко не все.Хотя существует не мало FILTER_VALIDATE_ * опций,существуют так же FILTER_SANITIZE_ * фильтры.Они предназначены для проверки ввода.
Например:
Код:
$user_int = "1+5+6 Типо типо типо sdds -2+5+4"; // Набор чисел и не только
$user_tint = filter_var($user_int, FILTER_SANITIZE_NUMBER_INT); // Набор только Чисел и символов +-
//Результат 1+5+6-2+5+4
По скольку информацию на русском мало где можно найти я перечислю примерно функции и флаги,Плюс их значения
Очистка
FILTER_SANITIZE_STRING: Этот фильтр удаляет данные, которые потенциально вредны для вашего приложения. Он используется для полосе теги и удалить нежелательные или кодирования символов.
Доступные "флаги"
- FILTER_FLAG_NO_ENCODE_QUOTES - этот флаг не кодирует котировки
- FILTER_FLAG_STRIP_LOW - Фильтр символов ASCII значение ниже 32
- FILTER_FLAG_STRIP_HIGH - Фильтр символов ASCII, стоимость которых превышает 127
- FILTER_FLAG_ENCODE_LOW - Кодирование символов ASCII значение ниже 32
- FILTER_FLAG_ENCODE_HIGH - Кодирование символов ASCII, стоимость которых превышает 127
- FILTER_FLAG_ENCODE_AMP - Кодирование символов & &
FILTER_SANITIZE_STRIPPED: Псевдоним для FILTER_SANITIZE_STRING, как показано выше.
FILTER_SANITIZE_ENCODED: Фильтр ленты или URL-кодирует нежелательных символов. Подобно urlencode ().
Доступные "флаги"
- FILTER_FLAG_STRIP_LOW - Фильтр символов ASCII значение ниже 32
- FILTER_FLAG_STRIP_HIGH - Фильтр символов ASCII, стоимость которых превышает 32
- FILTER_FLAG_ENCODE_LOW - Кодирование символов ASCII значение ниже 32
- FILTER_FLAG_ENCODE_HIGH - Кодирование символов ASCII, стоимость которых превышает 32
FILTER_SANITIZE_SPECIAL_CHARS: HTML-фильтра Экранирует специальные символы.
Доступные "флаги"
- FILTER_FLAG_STRIP_LOW - Фильтр символов ASCII значение ниже 32
- FILTER_FLAG_STRIP_HIGH - Фильтр символов ASCII, стоимость которых превышает 32
- FILTER_FLAG_ENCODE_HIGH - Кодирование символов ASCII, стоимость которых превышает 32
FILTER_SANITIZE_EMAIL: фильтр удаляет все незаконные электронная почта символы в строке.
FILTER_SANITIZE_URL: фильтр удаляет все незаконные URL символы в строке.
FILTER_SANITIZE_NUMBER_INT: фильтр удаляет все символы из незаконных номер.
FILTER_SANITIZE_NUMBER_FLOAT: фильтр удаляет все символы из незаконных число с плавающей точкой.
FILTER_SANITIZE_MAGIC_QUOTES: фильтр выполняет addslashes () для строки.
Проверка входного
FILTER_VALIDATE_INT: проверяет значение как целое.
Доступные "флаги"
- min_range - задает минимальное значение числа (пример кода)
- max_range - задает максимальную величину Integer
- FILTER_FLAG_ALLOW_OCTAL - позволяет восьмеричное значение числа
- FILTER_FLAG_ALLOW_HEX - позволяет шестнадцатеричных значений числа
FILTER_VALIDATE_BOOLEAN: проверяет значение как логический вариант.
FILTER_VALIDATE_FLOAT: проверяет значение как число с плавающей точкой.
FILTER_VALIDATE_REGEXP: проверяет значение против Perl-совместимых регулярных выражений.
FILTER_VALIDATE_URL: проверяет значение как URL.
Доступные "флаги"
- FILTER_FLAG_SCHEME_REQUIRED - Требует URL для RFC совместимость URL (например, http://example)
- FILTER_FLAG_HOST_REQUIRED - Требует URL включить имя хоста (например, http://www.example.com)
- FILTER_FLAG_PATH_REQUIRED - Требует URL иметь пути после имени домена (например,
Вам необходимо зарегистрироваться для просмотра ссылок
) - FILTER_FLAG_QUERY_REQUIRED - Требует URL иметь строку запроса (например, "example.php? Имя = Peter & возраст = 37")
FILTER_VALIDATE_EMAIL: проверяет значение в качестве электронной почты.
FILTER_VALIDATE_IP: проверяет значение как IPv4 или IPv6.
Доступные "флаги"
- FILTER_FLAG_IPV4 - требует от значения, которое будет действительным IPv4 IP (например, 255.255.255.255)
- FILTER_FLAG_IPV6 - требует от значения, которое будет действительным IP IPv6 (например, 2001:0 db8: 85a3: 08D3: 1319:8 A2E: 0370:7334)
- FILTER_FLAG_NO_PRIV_RANGE - требует от значения, которое будет указано RFC IP, а не в частном диапазоне (например 192.168.0.1, 10.0.0.1, ...)
- FILTER_FLAG_NO_RES_RANGE - Предполагается, что значение не входит в диапазон IP защищены. Этот флаг имеет IPv4 и IPv6 ценностей. Защищены ИС может быть 255.255.255.255 (широковещательный адрес).
Часть информации описание "флагов" и "фильтров" были взяты из интернета,источник не известен.
Остальная информация и примеры были написаны RDL Team специально для dapf.ru
© RDL Team & dapf.ru