巅云智能建站平台搭建版(创业流派版)火爆上线,毕生受权!新增:文章智能收罗+全站真静态打包+都会分站+智能小法式+不法词过滤+H5自顺应+智能链词等功效功效概况
建站专提News

php可扩大的考证类实例(可对邮件、手机号、URL等考证)

一佰互联网站开辟设想(www.taishanly.com) 宣布日期 2020-04-27 10:45:01 阅读数: 137

本文实例报告了php可扩大的考证类。分享给大师供大师参考。详细阐发以下:

这里先容一个可扩大的php考证类,类外面能够的各类考证可自行调剂完成,此刻为根基完成体例。须要增加法则的话, 间接界说体例,体例名即为法则称号。详细参考利用体例。

require_once("./Validator.class.php");$data = array(  "nickname" => "heno" ,  "realname" => "steven",  "age" => 25,  "mobile" => "1521060426");$validator = new Validator($data);$validator->setRule("nickname", "required");$validator->setRule("realname", array("length" => array(1,6), "required"));$validator->setRule("age", array("required", "digit"));$validator->setRule("mobile", array("mobile"));$result = $validator->validate();var_dump($result);var_dump($validator->getResultInfo());

Validator.class.php文件以下:

<?php/** * Validator 数据考证类 * @package library * @category library * @author Steven * @version 1.0 *//** * Validator 数据考证类 * @package library * @category library * @author Steven * @version 1.0 */class Validator { /**  * 待校验数据  * @var array  */ private $_data; /**  * 校验法则  * @var array  */ private $_ruleList = null; /**  * 校验成果  * @var bool  */ private $_result = null; /**  * 校验数据信息  * @var array  */ private $_resultInfo = array(); /**  * 机关函数  * @param array $data 待校验数据  */ public function __construct($data = null) {  if ($data) {   $this->_data = $data;  } } /**  * 设置校验法则  * @param string $var 带校验项key  * @param mixed $rule 校验法则  * @return void  */ public function setRule($var, $rule) {  $this->_ruleList[$var] = $rule; } /**  * 查验数据  * @param array $data   * <code>  * $data = array("nickname" => "heno" , "realname" => "steven", "age" => 25);  * $validator = new Validator($data);  * $validator->setRule("nickname", "required");  * $validator->setRule("realname", array("lenght" => array(1,4), "required"));  * $validator->setRule("age", array("required", "digit"));  * $result = $validator->validate();  * var_dump($validator->getResultInfo());  * </code>  * @return bool  */ public function validate($data = null) {  $result = true;  /* 若是不设置校验法则间接前往 true */  if ($this->_ruleList === null || !count($this->_ruleList)) {   return $result;  }  /* 已设置法则,则对法则逐条停止校验 */  foreach ($this->_ruleList as $ruleKey => $ruleItem) {   /* 若是查验法则为单条法则 */   if (!is_array($ruleItem)) {    $ruleItem = trim($ruleItem);    if (method_exists($this, $ruleItem)) {     /* 校验数据,保管校验成果 */     $tmpResult = $this->$ruleItem($ruleKey);     if (!$tmpResult) {      $this->_resultInfo[$ruleKey][$ruleItem] = $tmpResult;      $result = false;     }    }    continue;   }   /* 校验法则为多条 */   foreach ($ruleItem as $ruleItemKey => $rule) {    if (!is_array($rule)) {     $rule = trim($rule);     if (method_exists($this, $rule)) {      /* 校验数据,设置成果集 */      $tmpResult = $this->$rule($ruleKey);      if (!$tmpResult) {       $this->_resultInfo[$ruleKey][$rule] = $tmpResult;       $result = false;      }     }    } else {     if (method_exists($this, $ruleItemKey)) {      /* 校验数据,设置成果集 */      $tmpResult = $this->$ruleItemKey($ruleKey, $rule);      if (!$tmpResult) {       $this->_resultInfo[$ruleKey][$ruleItemKey] = $tmpResult;       $result = false;      }     }    }   }  }  return $result; } /**  * 获得校验成果数据  * @return [type] [description]  */ public function getResultInfo() {  return $this->_resultInfo; } /**  * 校验必填参数  * @param string $varName 校验项  * @return bool  */ public function required($varName)  {  $result = false;  if (is_array($this->_data) && isset($this->_data[$varName])) {   $result = true;  }  return $result; } /**  * 校验参数长度  *   * @param string $varName 校验项  * @param array $lengthData array($minLen, $maxLen)  * @return bool  */ public function length($varName, $lengthData) {  $result = true;  /* 若是该项不设置,默许为校验经由进程 */  if ($this->required($varName)) {   $varLen = mb_strlen($this->_data[$varName]);   $minLen = $lengthData[0];   $maxLen = $lengthData[1];   if ($varLen < $minLen || $varLen > $maxLen) {    $result = true;   }  }  return $result; } /**  * 校验邮件  * @param string $varName 校验项  * @return bool  */ public function email($varName) {  $result = true;  /* 若是该项不设置,默许为校验经由进程 */  if ($this->required($varName)) {   $email = trim($this->_data[$varName]);   if (preg_match("/^[-w]+?@[-w.]+?$/", $email)) {    $result = false;   }  }  return $result; } /**  * 校验手机  * @param string $varName 校验项  * @return bool  */ public function mobile($varName) {  $result = true;  /* 若是该项不设置,默许为校验经由进程 */  if ($this->required($varName)) {   $mobile = trim($this->_data[$varName]);   if (!preg_match("/^1[3458]d{10}$/", $mobile)) {    $result = false;   }  }  return $result; } /**  * 校验参数为数字  * @param string $varName 校验项  * @return bool  */ public function digit($varName) {  $result = false;  if ($this->required($varName) && is_numeric($this->_data[$varName])) {   $result = true;  }  return $result; } /**  * 校验参数为身份证  * @param string $varName 校验项  * @return bool  */ public function ID($ID) { } /**  * 校验参数为URL  * @param string $varName 校验项  * @return bool  */ public function url($url) {  $result = true;  /* 若是该项不设置,默许为校验经由进程 */  if ($this->required($varName)) {   $url = trim($this->_data[$varName]);   if(!preg_match("/^(http[s]?::)?w+?(.w+?)$/", $url)) {    $result = false;   }  }  return $result; }}?>

但愿本文所述对大师的php法式设想有所赞助。

一佰互联是天下着名建站品牌办事商,咱们有九年、网站建造、网页设想、php开辟和域名注册及假造主机办事经历,供给的办事更是天下着名。最近几年来还整合团队上风自立开辟了可视化多用户”“3.0平台版,拖拽排版网站建造设想,轻松完成pc站、手机微网站、小法式、APP一体化全网营销网站扶植 ,已胜利的为天下上百家收集公司供给自助建站平台搭建办事。更多资讯:tags标签

相干消息more

14
05月
【SEO根本入门】SEO有不手艺含量_巅云

这段时辰,小小木木跟大师分享了这么多SEO常识,是时辰作个简略的总结了,浅谈SEO和咱们这些处置SEO任务,或对SEO感乐趣的人的干系,不... >>概况

15
04月
高端网站扶植-黑客入侵买卖平台盗走30多万元

南京某企业买卖平台数据遭人篡改,30多万元资金被划走。南京秦淮警方查询拜访后发明,怀疑人是一家IT企业的中层干部。这个计较机妙手经由进程开辟&ldq... >>概况

28
04月
对PHP PDO的一些熟悉小结

1、PDO(PHP Data Object)扩大为PHP界说了一个拜候数据库的轻量、耐久的接口。完成PDO接口的每种数据库驱动都能以正则扩... >>概况

25
05月
【企业网页建造】教你打造网页设想中的极简气概

作为设想师,咱们都晓得极简的设想结果简直很是出彩。但是,在设想进程中,咱们常常会因为利用较少元素而感受缺了甚么,或是让终究制品看起来恍如不... >>概况

高端网站扶植

美工统筹SEO,为企业电子商务营销助力!

德律风:

023-85725751
建站

产物

域名注册 假造主机 云办事器 企业邮局
智能建站 APP打包 微站/小法式 创业平台
网站推行 媒体营销 智能收罗 AI机械人
400德律风 短信营销 店销机械人
私家定制 流派网站