Фильтрация данных в PHP 5

7 Июн
2012

Доброго времени суток Блогаюзер. Может для кого-то я покажусь КО, но наверное не все еще знают, что в PHP5.2 есть функция фильтрации и проверки, заменяющая регулярные выражения.

Искомая функция — filter_var();


Функция принимает 2 параметра — переменная которую следует проверить / экранировать и желаемый флаг. Флаги рассмотрены ниже.

1. validate


Проверяет, являются ли входные данные ожидаемыми. Флаги используют префикс FILTER_VALIDATE

sanitize


Экранирует символы в соответствии с установленными флагами. Флаги используют префикс FILTER_SANITIZE

Теперь давайте подробнее ознакомимся с флагами

FILTER_VALIDATE_INT — проверка, является ли переменная целым числом.


Вернет true в случае если переменная является целым числом и false если нет.

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


Вернет true в случае если переменная является числом с плавающей точкой и false если нет.

FILTER_VALIDATE_URL — проверка, правильно ли указан URL в переменной


Все мы уже знаем, что вернет функция)

FILTER_VALIDATE_EMAI — проверка E-mail


Поведение функции не изменилось

FILTER_VALIDATE_IP — проверка на корректный IP адресс


true / false

Переходим к фильтрации

FILTER_SANITIZE_STRING


Вырезает символы <>?

FILTER_SANITIZE_ENCODED


Кодирует символы `~!@#$%^&*()=+[{]};:'».?/| в HEX

FILTER_SANITIZE_SPECIAL_CHARS


Кодирует специальные символы <>&» в &type

FILTER_SANITIZE_EMAIL


Вырезает символы <>();:,\”

FILTER_SANITIZE_URL


Оставляет a-zA-Z0-9`~!@#$%^&*()-_=+[{]};:'»<,>.?/|

FILTER_SANITIZE_NUMBER_INT


Оставляет 1234567890-+

FILTER_SANITIZE_NUMBER_FLOAT


Оставляет 1234567890-+.

FILTER_SANITIZE_MAGIC_QUOTES


Кодирует ‘”\, так же, как magic quotes

Использовать функцию просто

<?php

$check = filter_var($input, нужный_тип_проверки);

?>
По материалам Хабрахабр.



загрузка...

Комментарии:

Наверх