Работа с входными данными

Класс содержит методы для обработки поступающих на вход данных. Преобразования, фильтрация, проверки и т.д.

c\input::test($var,$filters...);

Тестируют переменную на соответствие фильтрам. В случае несоответствия - выводится ошибка в виде строки

Фильтры могут быть переданы в качестве дополнительных аргументов, например

c\input::test($var,'trim','intval');

В качестве параметров на проверку могут быть поданы

fill - проверка на заполненность поля

plus - проверка на положительное значение

date - проверка на существование даты в произвольном формате (на наличие календарного дня и наличие читабельного формата)

date_format - Проверка на наличие даты в формате 'дд.мм.гггг'

mail - проверка на формат почты

Фильтрация переменной

Преобразование входной переменной на предмет соответствия фильтрам

c\input::filter($var,$filters='');

Сдледующие методы делают тоже самое, по этому объявлены, как deprecated и скоро будут удалены

c\input::setPost($var,$func=array(),$cannull=true); //deprecated
c\input::setGet($var,$func=array(),$cannull=true); // deprecated
c\input::setVal($var,$func=array(),$cannull=true); // deprecated

Параметры должны быть переданы в виде массива, или строки, если используется единичный фильтр. Возможны следующие фильтры:

intval, int - Преобразование в целочисленное число

floatval, float - Преобразование в число с плавающей запятой

boolean, bool - Преобразование в булево значение (1 либо 0)

abs - Получение модуля от числа (отбрасывание отрицательного значения)

iconv, from-utf8 - Преобразование кодировки из UTF-8 в кодировку проекта. Например, при передачи данных через Ajax в кодировке Windows-1251

trim - Обрезка пробелов

strip_tags, striptags, tag - Обрезка тегов

ucfirst - Первая буква заглавная

ucwords - Первая буква каждгого слова заглавная (например при пердаче ФИО)

phone - Преобразование в формат телефона (подробнее будет расписано ниже)

lower, strtolower - Преобразование в нижний регистр

upper, strtoupper - Преобразование в верхний регистр

striptags, tag, strip_tags - Убирает все теги в строке

Валидация переменной

Для расширенной проверки переменной на правильность, существует метод

c\input::validate($val,$validators=null,$label=[],$formKey=null)

Значение $val сравнивается с серией валидаторов до первого несоответствия

Валидаторы образуются в виде массива

$validator=[
'type'=>'int',
'text'=>'Текст ошибки которая будет выведена в буфер ошибок',
'level'=>c\error::ERROR, // Уровень ошибки которая будет добавлена
'inverse'=>false, // bool инверсия проверки. Валидным будет считаться значение не удовлетворяющее условию
'min','max','value','values','function'=>'Проверяемые значения. Ключи для проверок значений, устанавливаются в зависимости от типа проверки',
];

В качестве значения text можно использовать шаблонные переменные {label_full}, {min}, {max}, {value} и остальные свойства валидатора или переменной $label

В случае сопряжения с формой - переменная $label указывается автоматически текущим полем. Вместо текста ошибки можно использовать константу c\input::VALIDATE_AUTO_TEXT, которая выведет универсальную фразу с ошибкой в зависимости от названия колонки и типа проверки на языке, описаном в переводах. Набор фраз для перевода можно посмотреть внутри метода

Доступные функции валидации

int, number, numberic, numeric - проверка на пренадлежности значения к числу

 

c\input::mailTest($email,$showError=true);

Проверяем адрес почты на валидность.

В случае указания не валидного ящика - Если $show_error==true - в регистре ошибок фиксируется ошибка,  иначе возвращается false

c\input::checkMail($email);

Проверяет зону почтового ящика на существование почтового сервиса

c\input::phone($number);

Модицифирует номер телефона в универсальный читаемый вид.

+7,9 в начале заменяется на 8

Убираются всевозможные спецсимволы разделители номера, происходит замена в формат Х-ХХХ-ХХХ-ХХ-ХХ

Функция хорошо подходит для укладки и хранения единого стандарта в базу данных

c\input::bb($text,$mode='');

Преобразует введенную в формате BB кодов строку в html

Если $mode=='html' - проводит преобразования обратно в BB

c\input::textTransform($text);

Преобразование текстовой строки в нормальную строку. Удаляются повторные пробелы и сецсимволы

c\input::getLink($without='',$nullsIsEmpty=true,$onlyParams=false);

Преобразует GET строку запроса, удаляя или заменяя из нее переменные, указаные в массиве $without. Если в качестве значения параметра используется значение false - переменная будет удалена из запроса, в остальных случаях - заменена или установлена

Параметр $nullsIsEmpty указывает на полное удаление переменных, если в массиве $without они переданы, как 0 или ''

Параметр $onlyParams позволяет вернуть только параметры запроса, начиная с ?

c\input::json_encode($array,$charset=null);

Сериализует массив $array в JSON формат. Работает точно также, как и нативная json_encode за исключением, что предварительно производит преобразование кодировки.

Больше не нужно напрягаться при использовании и переключении различных кодировок. Если вы работаете с UTF-8 и не планируете использовать какую-либо другую кодировку - вы можете данную функцию не использовать

Создано при помощи сервиса Core CMS