www.gusucode.com > SDCMS三合一企业网站管理系统PHP源码程序 > SDCMS三合一企业网站管理系统/sdcms_swhy_v1.7/sdcms_swhy_v1.7/上传本目录中文件/app/lib/class/sdcms_verify.php
<?php /** * 作用:验证类 * 官网:Http://www.sdcms.cn * 作者:IT平民 * =========================================================================== * 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和使用; * 未经授权不允许对程序代码以任何形式任何目的的再发布。 * =========================================================================== **/ final class sdcms_verify { private $data=[]; public $msg=''; public function __construct($array) { $this->data=$array; self::verify(); } public function result() { return (!($this->msg))?true:false; } public function verify() { if(!is_array($this->data)) { $this->msg='验证参数类型错误'; return; } foreach($this->data as $key=>$val) { $result=self::check($val[0],$val[1],$val[2]); if(!($result===true)) { $this->msg=$result; return; } } } public static function check($data,$type,$val='') { switch($type) { case "null": if(is_array($data)) { return (count($data)!=0)?true:$val; } else { return (strlen($data)!=0)?true:$val; } break; case "int": return (preg_match('/^[0-9]+$/',$data))?true:$val; break; case "dot": return (preg_match('/^[0-9]+(.[0-9]{1,2})?$/',$data))?true:$val; break; case "en": return (preg_match('/^[a-zA-Z]+$/',$data))?true:$val; break; case "cn": return (preg_match('/^([\x80-\xff])+$/',$data))?true:$val; break; case "date": return (preg_match('/^[0-9]{4}(\-|\/)[0-9]{1,2}(\\1)[0-9]{1,2}(|\s+[0-9]{1,2}(|:[0-9]{1,2}(|:[0-9]{1,2})))$/',$data))?true:$val; break; case "email": return (preg_match('/^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,4}$/',$data))?true:$val; break; case "mobile": return (preg_match('/^1[3-9]\d{9}$/',$data))?true:$val; break; case "tel": return (preg_match('/^([0-9]{3,4}-)?[0-9]{7,8}$/',$data))?true:$val; break; case "zipcode": return (preg_match('/^[1-9]\d{5}$/',$data))?true:$val; break; case "qq": return (preg_match('/^[1-9][0-9]{4,15}$/',$data))?true:$val; break; case "id":#身份证 return (preg_match('/(^([\d]{15}|[\d]{18}|[\d]{17}x)$)/',$data))?true:$val; break; case "url": return (preg_match("/^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/",$data))?true:$val; break; case "username": return (preg_match('/^[\x80-\xff\w\d]{3,12}$/i',$data))?true:$val; break; case "password": return (preg_match('/^[\S]{5,16}$/i',$data))?true:$val; break; case "field": return (preg_match('/^\w{3,50}$/i',$data))?true:$val; break; case "other": return $data?true:$val; break; default: return $val; } } }