Проверяет проходят ли данные правила.
$array = array(
'str' => 'Текст',
'int' => 22,
'assoc' => array(
'float1' => 14.5,
'float2' => 7.0
)
);
// false
var_dump(check::is_valid('int', 'int(1, 20)', $array));
Можно указывать и несколько правил.
// false
var_dump(check::is_valid('int', 'int(1, 20) float(0, 5)', $array));
Для шаблонов правил доступны отрицания.
// true
var_dump(check::is_valid('int', '!int(1, 20)', $array));
Первым параметром можно указать массив, где ключ поле, а значение — правило, либо массив [0] => правило, [1] => сообщение.
$array = array(
'str' => 'Текст',
'int' => 22,
'assoc' => array(
'float1' => 14.5,
'float2' => 7.0
)
);
$rules = array(
// Является ли поле числом от 1 до 20
'int' => array('int(1, 20)', 'Должно быть число от 1 до 20'),
// Является ли числом с плавающей точкой
'assoc.float1' => array('float', 'Число с плавающей точкой дайте'),
// Является ли числом с плавающей точкой больше 5
'assoc.float2' => array('float(5)', 'Число с плавающей точкой больше пяти дайте')
);
// false
var_dump(check::is_valid($rules, $array));
// или
try {
if (!check::is_valid($rules, $array))
throw new Check_Except($rules, 'array');
} catch (Check_Except $e){
echo $e;
}
| array[int] | Должно быть число от 1 до 20 |
| array[assoc][float1] | Число с плавающей точкой дайте |
| array[assoc][float2] | Число с плавающей точкой больше пяти дайте |
Чтобы конкретизировать невалидность поля при нескольких правилах текст можно писать как JavaScript хэш (ассоциативный массив).
$rules = array(
'int' => array('int(1, 20) in(18, 19, 20)', '{"int": "Текст для int", "in": "Текст для in"}')
);
Методы с префиксом is_ можно использовать вне правил.
// true
var_dump(check::is_int(20, array(15, 25)))
Обратите внимание: в правилах префикс is_ можно игнорировать.
Проверяет валиден ли $_GET. Полезно использовать, чтобы не городить check::is_valid(). В случае успеха, вернёт запрашиваемый массив, в противном случае — пустой массив.
check::is_valid('int', 'int(1, 20)', $_GET);
// array()
var_dump(check::is_valid_get());
// или
// array()
var_dump(check::is_valid_get('key.subkey'));
То же самое что и check::is_valid_get() только для массива $_POST.
То же самое что и check::is_valid_get() только для массива $_FILES.
Является ли целым числом.
// false
var_dump(check::is_valid('int', 'int(1, 20)', $array));
// false
var_dump(check::int($array['int'], array(1, 20)));
Является ли числом с плавающей точкой.
Является ли числом.
Синоним предыдущего метода.
Является ли датой в формате
Является ли датой в формате
Является ли временем в формате ЧЧ:ММ:СС.
Не является ли строка пустой.
Является ли мейлом.
Является ли УРЛом.
Является ли альтернативным идентификатором.
// true
var_dump(check::is_aid('l_ex-a'));
// false
var_dump(check::is_aid('-lexa'));
// false
var_dump(check::is_aid('lexa_'));
// false
var_dump(check::is_aid('Лёха'));
Является ли IP.
Не существует ли в таблице поле с таим значением.
// true
var_dump(check::is_valid('lexa', 'unique(table.field)'));
// или
// true
var_dump(check::is_valid('lexa', 'unique(table.field, and where)'));
Первый параметр пишется через точку! таблица.поле или база.таблица.поле
Является ли телефонным номером. Этот метод ничего магического не делает, он просто вырезает всё, кроме цифр и сравнивает длинну со значением. По умолчанию значения 7, 10 и 11. Формируйте телефонные номера методом int::phone().
Проверяет валидность ISBN.
Проверяет валидность штрихкода форматов: EAN–8, UCC–12 (UCC-A), EAN–13 и EAN–14 (ITF–14).
Вызывает внешнюю функцию или метод для проверки.
function testit($value, $params = array()){
// $value - Some text
// $params - array('param1', 'param2')
return true;
}
// true
var_dump(check::is_valid('Some text', 'checker(testit, param1, param2)'));
Чтобы не вызывать внешнюю функцию, а сделать шаблон для правил «родным», следует создать функцию с префиксом check.
function check_testit($value, $params = array()){
// $value - Some text
// $params - array('param1', 'param2')
return true;
}
// true
var_dump(check::is_valid('Some text', 'testit(param1, param2)'));
Помимо $value и $params
Обратите внимание: этот метод метод и методы ниже нельзя использовать отдельно от валидатора!
Сравнивает значение текущего поля с полем из параметра.
$array = array(
'password' => 'myPass',
'rep_password' => 'mypass'
);
// false
var_dump(check::is_valid('rep_password', 'same_as(password)', $array));
Сравнивает данные.
// true
var_dump(check::is_valid('5.2.4', 'compare(>=, 4.2.8)'));
Является ли значением из списка.
Проверяет MIME-тип файла. В параметрах можно использовать «жадность»: image/* — все типы группы image.
Проверяет расширение файла.
Проверяет размер файла.
Проверяет ширину изображения.
Проверяет высоту изображения.