侯体宗的博客
  • 首页
  • 人生(杂谈)
  • 技术
  • 关于我
  • 更多分类
    • 文件下载
    • 文字修仙
    • 中国象棋ai
    • 群聊
    • 九宫格抽奖
    • 拼图
    • 消消乐
    • 相册

PHP代码实现表单数据验证类

php  /  管理员 发布于 7年前   157

下面通过一段PHP代码实现表单数据验证类,具体介绍如下:

非常好用方便的表单数据验证类

=0x80)      {      if( (ord($sInBuf{$i})>=0x81 && ord($sInBuf{$i})<=0xFE) && ((ord($sInBuf{$i+1})>=0x40 && ord($sInBuf{$i+1}) < 0x7E) || (ord($sInBuf{$i+1}) > 0x7E && ord($sInBuf{$i+1})<=0xFE)) )      {      if(ord($sInBuf{$i})>0xA0 && ord($sInBuf{$i})<0xAA)        {          //有中文标点return false;      }      }      else      {      //有日文或其它文字      return false;      }      $i++;      }        else          {return false;      }      }      return true;    }*/     function isChinese($sInBuf)//正确的函数     {       if (preg_match("/^[\x7f-\xff]+$/", $sInBuf)) { //兼容gb2312,utf-8       return true;       }       else       {         return false;       }     }       /*       -----------------------------------------------------------      函数名称:isDomain($Domain)      简要描述:检查一个(英文)域名是否合法      输入:string 域名      输出:boolean      修改日志:------      -----------------------------------------------------------      */       function isDomain($Domain)       {         if(!eregi("^[0-9a-z]+[0-9a-z\.-]+[0-9a-z]+$", $Domain))         {           Return false;         }         if( !eregi("\.", $Domain))         {           Return false;         }       if(eregi("\-\.", $Domain) or eregi("\-\-", $Domain) or eregi("\.\.", $Domain) or eregi("\.\-", $Domain))         {           Return false;         }       $aDomain= explode(".",$Domain);         if( !eregi("[a-zA-Z]",$aDomain[count($aDomain)-1]) )         {           Return false;         }       if(strlen($aDomain[0]) > 63 || strlen($aDomain[0]) < 1)         {           Return false;         }         Return true;       }       /**       * 验证是否日期的函数       * @param unknown_type $date       * @param unknown_type $format       * @throws Exception       * @return boolean       */       function validateDate( $date, $format='YYYY-MM-DD')       {         switch( $format )         {           case 'YYYY/MM/DD':           case 'YYYY-MM-DD': list( $y, $m, $d ) = preg_split( '/[-./ ]/', $date ); break;       case 'YYYY/DD/MM':           case 'YYYY-DD-MM': list( $y, $d, $m ) = preg_split( '/[-./ ]/', $date ); break;       case 'DD-MM-YYYY':           case 'DD/MM/YYYY': list( $d, $m, $y ) = preg_split( '/[-./ ]/', $date ); break;       case 'MM-DD-YYYY':           case 'MM/DD/YYYY': list( $m, $d, $y ) = preg_split( '/[-./ ]/', $date ); break;       case 'YYYYMMDD': $y = substr( $date, 0, 4 ); $m = substr( $date, 4, 2 ); $d = substr( $date, 6, 2 ); break;       case 'YYYYDDMM': $y = substr( $date, 0, 4 ); $d = substr( $date, 4, 2 ); $m = substr( $date, 6, 2 ); break;       default: throw new Exception( "Invalid Date Format" );         }         return checkdate( $m, $d, $y );       }           /*      -----------------------------------------------------------      函数名称:isDate      简要描述:检查日期是否符合0000-00-00        输入:string          输出:boolean          修改日志:------          -----------------------------------------------------------          */           function isDate($sDate)           { if( ereg("^[0-9]{4}\-[][0-9]{2}\-[0-9]{2}$",$sDate) ) { Return true;       }       else       {       Return false;     }     }      /*     -----------------------------------------------------------     函数名称:isTime     简要描述:检查日期是否符合0000-00-00 00:00:00     输入:string     输出:boolean     修改日志:------     -----------------------------------------------------------     */      function isTime($sTime)      {      if( ereg("^[0-9]{4}\-[][0-9]{2}\-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}$",$sTime) )       {         Return true;      }       else       {       Return false;      }      } /*     -----------------------------------------------------------     函数名称:isMoney($val)     简要描述:检查输入值是否为合法人民币格式     输入:string     输出:boolean     修改日志:------     -----------------------------------------------------------     */      function isMoney($val)      {      if(ereg("^[0-9]{1,}$", $val))       return true;      if( ereg("^[0-9]{1,}\.[0-9]{1,2}$", $val) )       return true;      return false;     }           /*     -----------------------------------------------------------    函数名称:isIp($val)      简要描述:检查输入IP是否符合要求      输入:string        输出:boolean        修改日志:------        -----------------------------------------------------------        */         function isIp($val)         {          return(bool) ip2long($val);         }         //-----------------------------------------------------------------------------     /**     * 验证手机号     * @param int $mobile     */     function valid_mobile($mobile){       if(strlen($mobile)!=11) return false;       if(preg_match('/13[0-9]\d{8}|15[0|1|2|3|5|6|7|8|9]\d{8}|18[0|5|6|7|8|9]\d{8}/',$mobile)){         return true;       }else{         return false;       }     }           /**     * 缩略图生成函数,最好使用GD2     *     * @param string $srcFile 要生成缩略图的文件     * @param int $toW 缩略图宽度     * @param int $toH 缩略图高度     * @param string $toFile 缩略图文件     */     function ImageResize($srcFile,$toW,$toH,$toFile=""){       if($toFile==""){ $toFile = $srcFile; }       $info = "";       $data = GetImageSize($srcFile,$info);       switch ($data[2]){         case 1:           if(!function_exists("imagecreatefromgif")){ //echo "你的GD库不能使用GIF格式的图片,请使用Jpeg或PNG格式!返回"; return false;           }           $im = ImageCreateFromGIF($srcFile);           break;         case 2:           if(!function_exists("imagecreatefromjpeg")){ //echo "你的GD库不能使用jpeg格式的图片,请使用其它格式的图片!返回"; return false;           }           $im = ImageCreateFromJpeg($srcFile);           break;         case 3:           $im = ImageCreateFromPNG($srcFile);           break;       }       $srcW=ImageSX($im);       $srcH=ImageSY($im);       $toWH=$toW/$toH;       $srcWH=$srcW/$srcH;       if($toWH<=$srcWH){         $ftoW=$toW;         $ftoH=$ftoW*($srcH/$srcW);       }       else{         $ftoH=$toH;         $ftoW=$ftoH*($srcW/$srcH);       }       if($srcW>$toW||$srcH>$toH)       {         if(function_exists("imagecreatetruecolor")){           @$ni = ImageCreateTrueColor($ftoW,$ftoH);           if($ni) ImageCopyResampled($ni,$im,0,0,0,0,$ftoW,$ftoH,$srcW,$srcH);           else{ $ni=ImageCreate($ftoW,$ftoH); ImageCopyResized($ni,$im,0,0,0,0,$ftoW,$ftoH,$srcW,$srcH);           }         }else{           $ni=ImageCreate($ftoW,$ftoH);           ImageCopyResized($ni,$im,0,0,0,0,$ftoW,$ftoH,$srcW,$srcH);         }         if(function_exists('imagejpeg')) ImageJpeg($ni,$toFile);         else ImagePNG($ni,$toFile);         ImageDestroy($ni);       }else{         ImageDestroy($im);         return false;       }       ImageDestroy($im);       return true;     }           //去除字符串空格     static function strTrim($str)     {       return preg_replace("/\s/","",$str);     }           //验证用户名     static function userName($str,$type,$len)     {       $str=self::strTrim($str);       if($len=$min && strlen($str)<=$max)       {         return true;       }else{         return false;       }     }           //验证Email     static function Email($str)     {       $str=self::strTrim($str);   if(preg_match("/^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.){1,2}[a-z]{2,4}$/i",$str))       {         return true;       }else{         return false;       } }           //验证身份证(中国)     static function idCard($str)     {       $str=self::strTrim($str);       if(preg_match("/^([0-9]{15}|[0-9]{17}[0-9a-z])$/i",$str))       {         return true;       }else{         return false;       }     }           //验证座机电话     static function Phone($type,$str)     {       $str=self::strTrim($str);       switch($type)       {         case "CHN":           if(preg_match("/^([0-9]{3}|0[0-9]{3})-[0-9]{7,8}$/",$str))           { return true;           }else{ return false;           }           break;         case "INT":           if(preg_match("/^[0-9]{4}-([0-9]{3}|0[0-9]{3})-[0-9]{7,8}$/",$str))           { return true;           }else{ return false;           }           break;       }     }       /**     * 过滤二维数组的值     * @param 二维数组 $arr_data     * @param 一维数组 $field     * @return Ambigous      */     function getarrayfield($arr_data, $field)     {       $resultArr = array();       foreach ( $arr_data as $key => $value ) {         foreach ($field as $k=>$v)         {           if(array_key_exists($v, $value))//存在才添加           { $resultArr[$key][$v] =$value[$v] ;           }           else           { $resultArr[$key][$v]="不存在这个列";           }         }       }     return $resultArr;     }     /**     * 获取客户端IP地址     * @return ip     */     function get_client_ip(){       if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown"))         $ip = getenv("HTTP_CLIENT_IP");       else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown"))         $ip = getenv("HTTP_X_FORWARDED_FOR");       else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown"))         $ip = getenv("REMOTE_ADDR");       else if (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown"))         $ip = $_SERVER['REMOTE_ADDR'];       else         $ip = "unknown";       return($ip);     }           function get_http_user_agent(){       return isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : "";     }           /**     * 从IP地址获取真实地址     * @param IP $ip     */     function get_address_from_ip($ip){       $url='http://www.youdao.com/smartresult-xml/search.s?type=ip&q=';       $xml=file_get_contents($url.$ip);       $data=simplexml_load_string($xml);       return $data->product->location;     } /**     * 产生随机字串,可用来自动生成密码 默认长度6位 字母和数字混合     * @param string $len 长度     * @param string $type 字串类型     * 0 字母 1 数字 2 大写字母 3 小写字母 默认混合 4中文     * @param string $addChars 额外字符     * @return string     */     function rand_string($len=6,$type='',$addChars='') {       $str ='';       switch($type) {         case 0:           $chars='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.$addChars;           break;         case 1:           $chars= str_repeat('0123456789',3);           break;         case 2:           $chars='ABCDEFGHIJKLMNOPQRSTUVWXYZ'.$addChars;           break;         case 3:           $chars='abcdefghijklmnopqrstuvwxyz'.$addChars;           break;         case 4:           $chars = "们以我到他会作时要动国产的一是工就年阶义发成部民可出能方进在了不和有大这主中人上为来分生对于学下级地个用同行面说种过命度革而多子后自社加小机也经力线本电高量长党得实家定深法表着水理化争现所二起政三好十战无农使性前等反体合斗路图把结第里正新开论之物从当两些还天资事队批点育重其思与间内去因件日利相由压员气业代全组数果期导平各基或月毛然如应形想制心样干都向变关问比展那它最及外没看治提五解系林者米群头意只明四道马认次文通但条较克又公孔领军流入接席位情运器并飞原油放立题质指建区验活众很教决特此常石强极土少已根共直团统式转别造切九你取西持总料连任志观调七么山程百报更见必真保热委手改管处己将修支识病象几先老光专什六型具示复安带每东增则完风回南广劳轮科北打积车计给节做务被整联步类集号列温装即毫知轴研单色坚据速防史拉世设达尔场织历花受求传口断况采精金界品判参层止边清至万确究书术状厂须离再目海交权且儿青才证低越际八试规斯近注办布门铁需走议县兵固除般引齿千胜细影济白格效置推空配刀叶率述今选养德话查差半敌始片施响收华觉备名红续均药标记难存测士身紧液派准斤角降维板许破述技消底床田势端感往神便贺村构照容非搞亚磨族火段算适讲按值美态黄易彪服早班麦削信排台声该击素张密害侯草何树肥继右属市严径螺检左页抗苏显苦英快称坏移约巴材省黑武培著河帝仅针怎植京助升王眼她抓含苗副杂普谈围食射源例致酸旧却充足短划剂宣环落首尺波承粉践府鱼随考刻靠够满夫失包住促枝局菌杆周护岩师举曲春元超负砂封换太模贫减阳扬江析亩木言球朝医校古呢稻宋听唯输滑站另卫字鼓刚写刘微略范供阿块某功套友限项余倒卷创律雨让骨远帮初皮播优占死毒圈伟季训控激找叫云互跟裂粮粒母练塞钢顶策双留误础吸阻故寸盾晚丝女散焊功株亲院冷彻弹错散商视艺灭版烈零室轻血倍缺厘泵察绝富城冲喷壤简否柱李望盘磁雄似困巩益洲脱投送奴侧润盖挥距触星松送获兴独官混纪依未突架宽冬章湿偏纹吃执阀矿寨责熟稳夺硬价努翻奇甲预职评读背协损棉侵灰虽矛厚罗泥辟告卵箱掌氧恩爱停曾溶营终纲孟钱待尽俄缩沙退陈讨奋械载胞幼哪剥迫旋征槽倒握担仍呀鲜吧卡粗介钻逐弱脚怕盐末阴丰雾冠丙街莱贝辐肠付吉渗瑞惊顿挤秒悬姆烂森糖圣凹陶词迟蚕亿矩康遵牧遭幅园腔订香肉弟屋敏恢忘编印蜂急拿扩伤飞露核缘游振操央伍域甚迅辉异序免纸夜乡久隶缸夹念兰映沟乙吗儒杀汽磷艰晶插埃燃欢铁补咱芽永瓦倾阵碳演威附牙芽永瓦斜灌欧献顺猪洋腐请透司危括脉宜笑若尾束壮暴企菜穗楚汉愈绿拖牛份染既秋遍锻玉夏疗尖殖井费州访吹荣铜沿替滚客召旱悟刺脑措贯藏敢令隙炉壳硫煤迎铸粘探临薄旬善福纵择礼愿伏残雷延烟句纯渐耕跑泽慢栽鲁赤繁境潮横掉锥希池败船假亮谓托伙哲怀割摆贡呈劲财仪沉炼麻罪祖息车穿货销齐鼠抽画饲龙库守筑房歌寒喜哥洗蚀废纳腹乎录镜妇恶脂庄擦险赞钟摇典柄辩竹谷卖乱虚桥奥伯赶垂途额壁网截野遗静谋弄挂课镇妄盛耐援扎虑键归符庆聚绕摩忙舞遇索顾胶羊湖钉仁音迹碎伸灯避泛亡答勇频皇柳哈揭甘诺概宪浓岛袭谁洪谢炮浇斑讯懂灵蛋闭孩释乳巨徒私银伊景坦累匀霉杜乐勒隔弯绩招绍胡呼痛峰零柴簧午跳居尚丁秦稍追梁折耗碱殊岗挖氏刃剧堆赫荷胸衡勤膜篇登驻案刊秧缓凸役剪川雪链渔啦脸户洛孢勃盟买杨宗焦赛旗滤硅炭股坐蒸凝竟陷枪黎救冒暗洞犯筒您宋弧爆谬涂味津臂障褐陆啊健尊豆拔莫抵桑坡缝警挑污冰柬嘴啥饭塑寄赵喊垫丹渡耳刨虎笔稀昆浪萨茶滴浅拥穴覆伦娘吨浸袖珠雌妈紫戏塔锤震岁貌洁剖牢锋疑霸闪埔猛诉刷狠忽灾闹乔唐漏闻沈熔氯荒茎男凡抢像浆旁玻亦忠唱蒙予纷捕锁尤乘乌智淡允叛畜俘摸锈扫毕璃宝芯爷鉴秘净蒋钙肩腾枯抛轨堂拌爸循诱祝励肯酒绳穷塘燥泡袋朗喂铝软渠颗惯贸粪综墙趋彼届墨碍启逆卸航衣孙龄岭骗休借".$addChars;           break;         case 5:           $chars='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'.$addChars;           break;         default :           // 默认去掉了容易混淆的字符oOLl和数字01,要添加请使用addChars参数           $chars='ABCDEFGHIJKMNPQRSTUVWXYZabcdefghijkmnpqrstuvwxyz23456789'.$addChars;           break;       }       if($len>10 ) {//位数过长重复字符串一定次数         $chars= $type==1? str_repeat($chars,$len) : str_repeat($chars,5);       } if($type == 4){ // 处理中文         $chars = preg_replace('/[^\\x{4e00}-\\x{9fa5}]/u', '', $chars);   // //干掉非utf8中文字符         $chars = chunk_split($chars,3,","); // //每隔3个字符插入一个“,”,转换为数组使用,使用strlen()测出php中一个中文霸占了3个         $re = explode(",",$chars);         shuffle($re);//随机重新排序数组         $chars = implode($re);         unset($re);         $str   =  mb_substr($chars,0,$len,"utf-8");       }else{         $chars  =  str_shuffle($chars);         $str   =  substr($chars,0,$len);       } return $str;     }           //获取url中参数的值     function geturlval($url,$name)     {       $arr = parse_url($url);       $arr_query = $this->convertUrlQuery($arr['query']);     return $arr_query[$name];           }     function convertUrlQuery($query)     {       $queryParts = explode('&', $query); $params = array();       foreach ($queryParts as $param)       {         $item = explode('=', $param);         $params[$item[0]] = $item[1];       } return $params;     }     /**     * 抓取远程图片     *     * @param string $url 远程图片路径     * @param string $filename 本地存储文件名     */     function grabImage($url, $savepath) {       if($url =="") {         return false; //如果 $url 为空则返回 false;       }       $ext_name = strrchr($url, '.'); //获取图片的扩展名       if($ext_name != '.gif' && $ext_name != '.jpg' && $ext_name != '.bmp' && $ext_name != '.png') {         return false; //格式不在允许的范围       }       //获取原图片名       $filename = $savepath.'\\'.end(explode('/',$url));       //开始捕获       ob_start();       readfile($url);       $img_data = ob_get_contents();       ob_end_clean();       $size = strlen($img_data);       $local_file = fopen($filename , 'a');       echo $filename;       if(fwrite($local_file, $img_data)== FALSE){         echo '图片下载失败';       }       fclose($local_file);       return $filename;     }   } ?>

以上就用php代码实现表单数据验证类的全部内容,希望大家能够喜欢。

您可能感兴趣的文章:

  • PHP 基于文件头的文件类型验证类函数
  • php封装的表单验证类完整实例
  • php实现通用的信用卡验证类
  • php可扩展的验证类实例(可对邮件、手机号、URL等验证)
  • 学习thinkphp5.0验证类使用方法
  • php常用表单验证类用法实例
  • php编写的一个E-mail验证类
  • PHP验证类的封装与使用方法详解


  • 上一条:
    PHP实现简单汉字验证码
    下一条:
    在Mac上编译安装PHP7的开发环境
  • 昵称:

    邮箱:

    0条评论 (评论内容有缓存机制,请悉知!)
    最新最热
    • 分类目录
    • 人生(杂谈)
    • 技术
    • linux
    • Java
    • php
    • 框架(架构)
    • 前端
    • ThinkPHP
    • 数据库
    • 微信(小程序)
    • Laravel
    • Redis
    • Docker
    • Go
    • swoole
    • Windows
    • Python
    • 苹果(mac/ios)
    • 相关文章
    • Laravel从Accel获得5700万美元A轮融资(0个评论)
    • PHP 8.4 Alpha 1现已发布!(0个评论)
    • 用Time Warden监控PHP中的代码处理时间(0个评论)
    • 在PHP中使用array_pop + yield实现读取超大型目录功能示例(0个评论)
    • Property Hooks RFC在PHP 8.4中越来越接近现实(0个评论)
    • 近期文章
    • 在windows10中升级go版本至1.24后LiteIDE的Ctrl+左击无法跳转问题解决方案(0个评论)
    • 智能合约Solidity学习CryptoZombie第四课:僵尸作战系统(0个评论)
    • 智能合约Solidity学习CryptoZombie第三课:组建僵尸军队(高级Solidity理论)(0个评论)
    • 智能合约Solidity学习CryptoZombie第二课:让你的僵尸猎食(0个评论)
    • 智能合约Solidity学习CryptoZombie第一课:生成一只你的僵尸(0个评论)
    • 在go中实现一个常用的先进先出的缓存淘汰算法示例代码(0个评论)
    • 在go+gin中使用"github.com/skip2/go-qrcode"实现url转二维码功能(0个评论)
    • 在go语言中使用api.geonames.org接口实现根据国际邮政编码获取地址信息功能(1个评论)
    • 在go语言中使用github.com/signintech/gopdf实现生成pdf分页文件功能(95个评论)
    • gmail发邮件报错:534 5.7.9 Application-specific password required...解决方案(0个评论)
    • 近期评论
    • 122 在

      学历:一种延缓就业设计,生活需求下的权衡之选中评论 工作几年后,报名考研了,到现在还没认真学习备考,迷茫中。作为一名北漂互联网打工人..
    • 123 在

      Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..
    • 原梓番博客 在

      在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..
    • 博主 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..
    • 1111 在

      佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..
    • 2016-10
    • 2016-11
    • 2017-06
    • 2017-07
    • 2017-08
    • 2017-09
    • 2017-11
    • 2017-12
    • 2018-01
    • 2018-02
    • 2018-03
    • 2020-03
    • 2020-04
    • 2020-05
    • 2020-06
    • 2020-07
    • 2020-09
    • 2021-02
    • 2021-03
    • 2021-04
    • 2021-05
    • 2021-06
    • 2021-07
    • 2021-08
    • 2021-09
    • 2021-10
    • 2021-11
    • 2021-12
    • 2022-01
    • 2022-02
    • 2022-05
    • 2022-06
    • 2022-07
    • 2022-08
    • 2022-09
    • 2022-10
    • 2022-11
    • 2022-12
    • 2023-01
    • 2023-02
    • 2023-03
    • 2023-04
    • 2023-05
    • 2023-06
    • 2023-07
    • 2023-08
    • 2023-09
    • 2023-10
    • 2023-11
    • 2023-12
    • 2024-01
    • 2024-02
    • 2024-03
    • 2024-04
    • 2024-05
    • 2024-06
    • 2024-07
    • 2024-09
    Top

    Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号 PHP交流群

    侯体宗的博客