[TOC] ## 说明: 说明:验证功能主要使用php-validation插件,php-validation是一个非常好用而且操作简单的php验证参数插件 英文地址:https://packagist.org/packages/hundredminds/php-validation ## 使用方法: ~~~ /** * Your user-defined validation handling. The exception section is * very important and should always be used. * * @access private * @param array $data * @return mixed */ public function validate(array $data = array()) { $data=['name'=>'Name','email'=>'3010085965@qq.com']; $validator = new \Framework\library\Validator($data); $validator ->requestMethod('POST');//验证请求方式是否POST $validator ->required('该参数值不能为空') ->integer('该参数值必须是一个整形') ->validate('name'); $validator ->required('You must supply an email address.') ->email('You must supply a valid email address') ->validate('email', 'Email'); // check for errors if ($validator->hasErrors()) { p($validator->getAllErrors()); } return $validator->getValidData(); } ~~~ 输出: ~~~ Array ( [name] => 该参数值必须是一个整形 ) ~~~ ## 可用验证函数 需要注意:如果是验证中文字符长度,一个中文字符utf8通常是3个字节,也可能占四个字节 | 验证函数 | 说明 | 默认提示 | | --- | --- | --- | | requestMethod($action='GET',$message=null) | 请求 | 请求方式错误,该请求方式不是对应的方式 (注意参数为大写如:POST) | | required($message = null) | 必填验证 | 字段值是必须的,不能为空 | | email($message = null) | 邮箱验证 | 字段值不是一个正确的邮箱地址 | | float($message = null) | 浮点型验证 | 字段值不是一个正确的浮点型float | | integer($message = null) | 整型验证 | 必须是一个整型(integer)的值 | | digits($message = null) | 必填验证 | 字段值是必须的,不能为空 | | min($limit, $include = TRUE, $message = null) | 必填验证 | 字段值必须大于$ limit(numeric)。$ include定义该值是否等于该值,默认true。 | | max($limit, $include = TRUE, $message = null) | 必填验证 | 字段值必须小于$ limit(numeric)。$ include定义该值是否等于该值,默认true 。 | | between($min, $max, $include = TRUE, $message = null) | 必填验证 | 字段值必须在$ min和$ max(数值)之间。$ include定义该值是否等于$ min和$ max | | minLength($length, $message = null) | 必填验证 | 字符串长度必须大于或等于$ length字符。 | | maxLength($length, $message = null) | 必填验证 | 字符串长度必须小于或等于$ length字符 | | betweenlength($minlength, $maxlength, $message = null) | 必填验证 | 字符串长度必须大于等于$ min或者小于等于$ max(数值)之间。$ include定义该值是否等于$ min和$ max | | length($length, $message = null) | 必填验证 | 该字段必须长为$ length个字符 | | matches($field, $label, $message = null) | 必填验证 | 一个字段匹配另一个字段(即密码匹配) | | notMatches($field, $label, $message = null) | 必填验证 | 字段值不能匹配$ field的值。 | | startsWith($sub, $message = null) | 必填验证 | 该字段必须以$ sub作为字符串开头 | | notStartsWith($sub, $message = null) | 必填验证 | 该字段不能以$ sub作为字符串开头 | | endsWith($sub, $message = null) | 必填验证 | 该字段必须以$ sub作为字符串结束 | | notEndsWith($sub, $message = null) | 必填验证 | 该字段不能以$ sub作为字符串结束 | | ip($message = null) | IP验证 | 字段值不是一个正确的IP地址 | | url($message = null) | URL验证 | 字段值不是一个正确的url地址 | | date($message = null) | 时间验证 | 不是一个时间值 date | | minDate($date, $format, $message = null) | 必填验证 | 日期必须大于$ date。$格式必须是页面上的格式 | | maxDate($date, $format, $message = null) | 必填验证 | 日期必须小于$ date。$格式必须是页面上的格式 | | ccnum($message = null) | 必填验证 | 字段值必须是有效的信用卡号码。 | | oneOf($allowed, $message = null) | 必填验证 | 字段值必须是$允许的值之一。$ allowed可以是数组或逗号分隔的值列表。如果用逗号分隔,除非打算进行匹配,否则不要包含空格 | | callback($callback, $message = '', $params = array()) | |定义您自己的自定义回调确认功能。$ callback必须通过一个is_callable()检查。$ params可以是任何值,如果必须传递多个参数,则为数组。 ## 回调函数 ~~~ //回调函数可以作为字符串或闭包传递。 // numeric example $validadator ->callback('is_numeric', 'Field is not numeric.') ->validate('number_field'); // closure example $validator ->callback(function($val) { return $val < -1 || $val > 1; }, 'Number must be less than -1 or greater than 1.') ->validate('number_field_2'); ~~~ ## 预验证过滤 您可以将预验证过滤器应用于数据(即trim,strip_tags,htmlentities)。这些过滤器也可以自定义,只要它们通过is_callable()检查。 过滤器($ callback) ~~~ // standard php filter for valid user ids. $validator ->filter('intval') ->min(1) ->validate('user_id'); // custom filter $validator ->filter(function($val) { // bogus formatting of the field $val = rtrim($val, '/'); $val .= '_custom_formatted'; return $val; }) ->validate('field_to_be_formatted'); ~~~