亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 網站 > 建站經驗 > 正文

php可擴展的驗證類實例(可對郵件、手機號、URL等驗證)

2024-04-25 20:38:45
字體:
來源:轉載
供稿:網友

本文實例講述了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程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美高清在线视频观看不卡| 亚洲图片在线综合| 中文字幕久久久| 亚洲欧美日韩另类| 国产精品男人的天堂| 久久天天躁日日躁| 国内揄拍国内精品少妇国语| 日韩欧美综合在线视频| 亚洲最新在线视频| 精品国产乱码久久久久久虫虫漫画| 91精品国产色综合久久不卡98口| 91免费在线视频| 亚洲高清一区二| 国产精品高精视频免费| 国外成人在线直播| 国产精品色视频| 亚洲人免费视频| 欧美精品videosex极品1| 久久噜噜噜精品国产亚洲综合| 日韩精品中文字幕在线| 日韩视频免费看| 在线免费观看羞羞视频一区二区| 亚洲一区二区三区xxx视频| xxxxxxxxx欧美| 久久久精品一区二区三区| 韩国三级日本三级少妇99| 亚洲伊人成综合成人网| 欧美一区在线直播| 久久久亚洲精品视频| 国产精品白嫩初高中害羞小美女| 成人黄色在线观看| 欧洲精品在线视频| 欧洲日韩成人av| 91精品国产91久久久久久| 中文字幕久久亚洲| 久久亚洲成人精品| 久久亚洲春色中文字幕| 欧美日韩国产一中文字不卡| 国产精品爽爽ⅴa在线观看| 国产成人在线一区二区| 久久777国产线看观看精品| 国产精品视频不卡| 日韩有码在线观看| 91黄色8090| 91黑丝高跟在线| 亚洲网站在线观看| 国产日韩欧美成人| 7777kkkk成人观看| 成人午夜黄色影院| 美乳少妇欧美精品| 九九精品在线播放| 国产精品激情av电影在线观看| 国产精品亚洲视频在线观看| 亚洲韩国欧洲国产日产av| 日韩精品极品在线观看播放免费视频| 国产午夜精品理论片a级探花| 精品国产乱码久久久久久虫虫漫画| 成人美女免费网站视频| 久久久久久亚洲精品| 午夜精品久久久久久99热| 久久青草精品视频免费观看| 国产精品高潮在线| 欧美日韩激情视频8区| 精品国产一区久久久| 91精品国产综合久久香蕉最新版| 色婷婷综合成人av| 精品动漫一区二区三区| 欧美日本啪啪无遮挡网站| 亚洲成人黄色在线| 国产在线观看精品| 精品国产精品自拍| 中文国产成人精品久久一| 国产91ⅴ在线精品免费观看| 亚洲在线免费观看| 成人激情视频小说免费下载| 精品亚洲国产成av人片传媒| 92版电视剧仙鹤神针在线观看| 成人亚洲欧美一区二区三区| 国产精品国产三级国产aⅴ浪潮| 亚洲一区二区精品| 精品国模在线视频| 日韩精品视频在线| 欧美午夜女人视频在线| 亚洲精品99999| 日韩av影视综合网| 浅井舞香一区二区| 久久成人国产精品| 亚洲色图欧美制服丝袜另类第一页| 成人免费观看a| 国产精品99久久久久久人| 久久九九全国免费精品观看| 国产主播精品在线| 欧美大片在线看免费观看| 国产在线视频欧美| 色综合亚洲精品激情狠狠| 亚洲欧美激情精品一区二区| 日韩有码在线观看| 久久男人av资源网站| 91tv亚洲精品香蕉国产一区7ujn| 成人在线视频网| 精品国产乱码久久久久久虫虫漫画| 国产精品直播网红| 久久九九国产精品怡红院| 亚洲精选在线观看| 日韩视频一区在线| 综合久久五月天| 神马国产精品影院av| 久久精品欧美视频| 久久天堂av综合合色| 国产精品夜间视频香蕉| 亚洲va欧美va在线观看| 国产v综合ⅴ日韩v欧美大片| 欧美丝袜一区二区| 中文字幕日韩精品在线| 国产日韩av高清| 69视频在线免费观看| **欧美日韩vr在线| 久久久久久一区二区三区| 精品一区二区三区电影| 91精品免费看| 青草热久免费精品视频| 久久综合色影院| 国产精品久久一区主播| 欧美极度另类性三渗透| 国产精品jizz在线观看麻豆| 日韩精品在线影院| 97视频在线免费观看| y97精品国产97久久久久久| 亚洲无限av看| 久久不射热爱视频精品| 亚洲va欧美va在线观看| 最近的2019中文字幕免费一页| 一区二区欧美日韩视频| 欧美午夜xxx| 亚洲精品久久久久国产| 国产原创欧美精品| 欧美一区二区视频97| 欧美大片免费看| 国产精品扒开腿做爽爽爽的视频| 亚洲精品自拍偷拍| 国产99在线|中文| 欧美激情国产精品| 日本精品在线视频| 中日韩美女免费视频网址在线观看| 日韩中文在线中文网在线观看| 国产精品久久久久久久一区探花| 亚洲人成在线播放| 久色乳综合思思在线视频| 欧美性高潮床叫视频| 亚洲国产福利在线| 热门国产精品亚洲第一区在线| 欧美日韩国产色视频| 日本免费一区二区三区视频观看| 亚洲国产毛片完整版| 亚洲欧美制服中文字幕| 国产精品香蕉在线观看| 久久夜色撩人精品| 亚洲久久久久久久久久久| 96pao国产成视频永久免费| 成人a视频在线观看| 亚洲精品美女在线观看| 久久久在线免费观看| 91在线观看免费网站| 国产精品亚洲片夜色在线|