热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

php批量验证类

代码:

  • 代码:

    /**
    * 批量验证类
    * @author [lee] <[]>
    * 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*/‘"
    }



  • 推荐阅读
    • 本文详细介绍了Java中org.neo4j.helpers.collection.Iterators.single()方法的功能、使用场景及代码示例,帮助开发者更好地理解和应用该方法。 ... [详细]
    • PHP 5.2.5 安装与配置指南
      本文详细介绍了 PHP 5.2.5 的安装和配置步骤,帮助开发者解决常见的环境配置问题,特别是上传图片时遇到的错误。通过本教程,您可以顺利搭建并优化 PHP 运行环境。 ... [详细]
    • PHP 过滤器详解
      本文深入探讨了 PHP 中的过滤器机制,包括常见的 $_SERVER 变量、filter_has_var() 函数、filter_id() 函数、filter_input() 函数及其数组形式、filter_list() 函数以及 filter_var() 和其数组形式。同时,详细介绍了各种过滤器的用途和用法。 ... [详细]
    • QUIC协议:快速UDP互联网连接
      QUIC(Quick UDP Internet Connections)是谷歌开发的一种旨在提高网络性能和安全性的传输层协议。它基于UDP,并结合了TLS级别的安全性,提供了更高效、更可靠的互联网通信方式。 ... [详细]
    • PHP 编程疑难解析与知识点汇总
      本文详细解答了 PHP 编程中的常见问题,并提供了丰富的代码示例和解决方案,帮助开发者更好地理解和应用 PHP 知识。 ... [详细]
    • 深入理解OAuth认证机制
      本文介绍了OAuth认证协议的核心概念及其工作原理。OAuth是一种开放标准,旨在为第三方应用提供安全的用户资源访问授权,同时确保用户的账户信息(如用户名和密码)不会暴露给第三方。 ... [详细]
    • 优化ListView性能
      本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
    • 技术分享:从动态网站提取站点密钥的解决方案
      本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
    • CSS 布局:液态三栏混合宽度布局
      本文介绍了如何使用 CSS 实现液态的三栏布局,其中各栏具有不同的宽度设置。通过调整容器和内容区域的属性,可以实现灵活且响应式的网页设计。 ... [详细]
    • 深入理解Cookie与Session会话管理
      本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ... [详细]
    • CentOS7源码编译安装MySQL5.6
      2019独角兽企业重金招聘Python工程师标准一、先在cmake官网下个最新的cmake源码包cmake官网:https:www.cmake.org如此时最新 ... [详细]
    • 本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ... [详细]
    • 前言--页数多了以后需要指定到某一页(只做了功能,样式没有细调)html ... [详细]
    • 深入解析JMeter中的JSON提取器及其应用
      本文详细介绍了如何在JMeter中使用JSON提取器来获取和处理API响应中的数据。特别是在需要将一个接口返回的数据作为下一个接口的输入时,JSON提取器是一个非常有用的工具。 ... [详细]
    • Ihaveastringwithquotesaroundthepathasfollows:我在路径周围有一个带引号的字符串,如下所示:C:\ProgramFiles(x ... [详细]
    author-avatar
    ga70752ga你
    这个家伙很懒,什么也没留下!
    PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
    Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有