Класс содержит методы для обработки поступающих на вход данных. Преобразования, фильтрация, проверки и т.д.
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