表单验证类
浏览:5483
最后更新:2015-05-10 17:29
分类:类库
支持闭包 可以验证后 修改 数据值
上使用代码
$data = array(
'title' => 'title',
'content' => 'content',
'userID' => 'userID',
'verify' => '11',
'value' => '3',
'password' => 'password',
);
$validate = new Validate();
$validate
->insert_rule('title', 'require', '验证必须!')
->insert_rule('repassword', 'require', '正则验证不通过', Validate::VALIDATE_EXISTS, Validate::TYPE_REGEX)
->valid($data);
$validate->rule([
array('verify', 'require', '验证码必须!'), //默认情况下用正则进行验证
array('repassword', 'require', '正则验证不通过', Validate::VALIDATE_EXISTS, Validate::TYPE_REGEX),
/**
* 内置方法
*/
array('value', array(1, 2, 3), '值的范围不正确!', Validate::VALIDATE_EXISTS, Validate::TYPE_IN),
array('value', array(1, 2, 3), '值不能在范围内!', Validate::VALIDATE_EXISTS, Validate::TYPE_NOT_IN),
array('value', array(1, 10), '值必须在1-10之间!', Validate::VALIDATE_EXISTS, Validate::TYPE_BETWEEN),
array('value', array(1, 10), '值不能在1-10之间!', Validate::VALIDATE_EXISTS, Validate::TYPE_NOT_BETWEEN),
array('value', '值', '相等!', Validate::VALIDATE_EXISTS, Validate::TYPE_EQUAL),
array('value', '值', '不能相等!', Validate::VALIDATE_EXISTS, Validate::TYPE_NOT_EQUAL),
array('value', '1,10', '长度不在1-10之间!', Validate::VALIDATE_EXISTS, Validate::TYPE_LENGTH),
array('value', '1', '长度不等于1!', Validate::VALIDATE_EXISTS, Validate::TYPE_LENGTH),
/**
* 根据 NOW_TIME 常量判断
*/
array('value', '1,144444', '当前时间不在该时间内!', Validate::VALIDATE_EXISTS, Validate::TYPE_EXPIRE),
/**
* 验证为 $_SERVER['REMOTE_ADDR']
*/
array('value', '192.168.1.1,192.168.1.2', '只允许 192.168.1.1,192.168.1.2 中使用', Validate::VALIDATE_EXISTS, Validate::TYPE_IP_ALLOW),
array('value', '192.168.1.1,192.168.1.2', '192.168.1.1,192.168.1.2 禁止使用!', Validate::VALIDATE_EXISTS, Validate::TYPE_IP_DENY),
array('repassword', 'password', '确认密码不正确', Validate::VALIDATE_EXISTS, Validate::TYPE_CONFIRM), // 验证确认密码是否和密码一致
/**
* 函数调用 和闭包支持
*/
array('password', 'function_name', '密码格式不正确', Validate::VALIDATE_EXISTS, Validate::TYPE_CALLBACK, array()), // 自定义函数验证密码格式
array('password', '', '密码格式不正确', Validate::VALIDATE_EXISTS, function ($val) use (&$data) {
if (mb_strlen($val, 'GBK') <= 10) {
// 闭包支持修改数据
$data['user'] = "guest";
return false;
}
return true;
}), // 闭包验证
]);
// 单条验证
$validate->check("test", 'test', Validate::TYPE_EQUAL);
if (!$validate->valid($data)) {
// 显示错误
var_dump($validate->getError());
}
var_dump($data);