php批量验证类
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php批量验证类相关的知识,希望对你有一定的参考价值。
- 代码:
<?php /** * 批量验证类 * @author [lee] <[<www.dollarphp.com>]> * 1、验证是否为空 * 2、验证数据类型 * 3、验证长度是否达标 * 4、验证是否符合正则匹配 */ class validation{ private $data; private $msg = array(); public function __construct($main){ foreach($main as $k=>$v){ $this->data = $k; $bool = $v[0]; $type = $v[1]; $len_arr = $v[2]; $preg = $v[3]; $this->isEmpty($bool)->dataType($type)->dataLength($len_arr)->pregMath($preg); } } private function isEmpty($bool){ $data = $this->data; if($bool){ if(empty($data)){ $msg = "‘{$data}‘不能为空"; array_push($this->msg,$msg); } } return $this; } private function dataType($type){ $data = $this->data; if($type==‘bool‘){ if(!is_bool($data)){ $msg = "‘{$data}‘不能为非布尔值"; array_push($this->msg,$msg); } }elseif($type==‘string‘){ if(!is_string($data)){ $msg = "‘{$data}‘不能为非字符串值"; array_push($this->msg,$msg); } }elseif($type==‘int‘){ if(!is_int($data)){ $msg = "‘{$data}‘不能为非整型值"; array_push($this->msg,$msg); } }elseif($type==‘float‘){ if(!is_float($data)){ $msg = "‘{$data}‘不能为非浮点型值"; array_push($this->msg,$msg); } }elseif($type==‘array‘){ if(!is_array($data)){ $msg = "‘{$data}‘不能为非数组值"; array_push($this->msg,$msg); } }elseif($type==‘object‘){ if(!is_object($data)){ $msg = "‘{$data}‘不能为非对象值"; array_push($this->msg,$msg); } } return $this; } private function dataLength($len_arr){ $data = $this->data; $min = abs($len_arr[0]); $max = abs($len_arr[1]); $type = gettype($data); if($type==‘string‘){ $len = strlen($data); }elseif($type==‘integer‘){ $len = strlen($data); }elseif($type==‘double‘){ $len0 = strlen($data); $len1 = explode(‘.‘,$len0); $len = $len1[1]; }elseif($type==‘array‘){ $len = count($data); }elseif($type==‘object‘){ $data = (array)$data; $len = count($data); } if(!($len >= $min && $len <= $max)){ $msg = "‘{$data}‘长度不能小于{$min},不能大于{$max}"; array_push($this->msg,$msg); } return $this; } private function pregMath($preg){ $data = $this->data; if(!empty($preg)){ if(!preg_match($preg,$data)){ $msg = "‘{$data}‘格式不匹配‘{$preg}‘"; array_push($this->msg,$msg); } } } public function checkData(){ $msg = $this->msg; return $msg; } } $data = array( ‘lee‘=>array( true, ‘string‘, array(5,20), ‘/^a.*/‘ ), ‘hello‘=>array( false, ‘int‘, array(8,20), ‘/^a\s*/‘ ) ); $validation = new validation($data); $ret = $validation->checkData(); var_dump($ret);
- 输出:
array(5) { [0]=> string(41) "‘lee‘长度不能小于5,不能大于20" [1]=> string(28) "‘lee‘格式不匹配‘/^a.*/‘" [2]=> string(28) "‘hello‘不能为非整型值" [3]=> string(43) "‘hello‘长度不能小于8,不能大于20" [4]=> string(31) "‘hello‘格式不匹配‘/^a\s*/‘" }
以上是关于php批量验证类的主要内容,如果未能解决你的问题,请参考以下文章