PHP驗(yàn)證類的封裝與使用方法詳解_第1頁
PHP驗(yàn)證類的封裝與使用方法詳解_第2頁
PHP驗(yàn)證類的封裝與使用方法詳解_第3頁
PHP驗(yàn)證類的封裝與使用方法詳解_第4頁
PHP驗(yàn)證類的封裝與使用方法詳解_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第PHP驗(yàn)證類的封裝與使用方法詳解$method_array=get_class_methods(newValid());

if(!in_array($method,$method_array)){

self::$error[]="Methodnotexist.";

if(!self::$method($field,$param)){

self::$error[]=self::$error_tips[$rule]self::$error_tips[$rule]:'參數(shù)格式有誤';

if(count(self::$error)==0){

return0;

returnself::$error[0];//返回第一個(gè)錯(cuò)誤

publicstaticfunctioncheck_required($field){

if(isset($field)($field===false||$field===0||$field===0.0||$field==='0'||!empty($field))){

returntrue;

}else{

returnfalse;

publicstaticfunctioncheck_tel($field){

if(preg_match("/^1[345678]{1}\d{9}$/",$field)){

returntrue;

}else{

returnfalse;

publicstaticfunctioncheck_email($field){

if(preg_match("/^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/",$field)){

returntrue;

}else{

returnfalse;

publicstaticfunctioncheck_max_len($field,$param=null){

if(function_exists('mb_strlen')){

if(mb_strlen($field)=(int)$param){

returntrue;

}else{

returnfalse;

}else{

if(strlen($field)=(int)$param){

returntrue;

}else{

returnfalse;

publicstaticfunctioncheck_min_len($field,$param=null){

if(function_exists('mb_strlen')){

if(mb_strlen($field)=(int)$param){

returntrue;

}else{

returnfalse;

}else{

if(strlen($field)=(int)$param){

returntrue;

}else{

returnfalse;

publicstaticfunctioncheck_regex($field,$param=null)

$regex=$param;

if(preg_match($regex,$field)){

returntrue;

}else{

returnfalse;

基本滿足需求。

vendor('Func.Valid');

if($res=Valid::validate('152','required|regex,/^1[345678]{1}\d{9}$/')){

$this-json-setErr(10001,$res);

$this-json-Send();

封裝很有意思,這個(gè)類唯一的亮點(diǎn),就是可以復(fù)合驗(yàn)證。并且支持正則。而且里面的驗(yàn)證方法還可以單獨(dú)使用。

vendor('Func.Valid');

if(!Valid::check_tel('152')){

$this-json-setErr(10001,'手機(jī)號(hào)有誤');

$this-json-Send();

勇敢的封裝,利國(guó)利民。

繼續(xù)封裝,支持?jǐn)?shù)組傳參。

*CreatedbyPhpStorm.

*User:jiqing

*Date:18-7-24

*Time:下午4:36

*常用驗(yàn)證

classValid

staticprotected$error;

staticprotected$error_tips=[

'tel'='手機(jī)號(hào)格式有誤',

'email'='郵箱格式有誤',

'max_len'='參數(shù)長(zhǎng)度不能超過最大長(zhǎng)度',

'min_len'='參數(shù)長(zhǎng)度不能小于最小長(zhǎng)度',

'required'='缺少參數(shù)'

*@param$validatorsarrayarray('email'='required|valid_email')

*@param$inputarraypost數(shù)據(jù)

*@returnstring

publicfunctionis_valid($validators,$input){

foreach($validatorsas$field=$rules){

if(!isset($input[$field])||empty($input[$field])){

self::$error[]="缺少參數(shù)";

$rules=explode('|',$rules);

foreach($rulesas$rule){

$method=null;

$param=null;

//Checkifwehaveruleparameters

if(strstr($rule,',')!==false){

$rule=explode(',',$rule);

$method='check_'.$rule[0];

$param=$rule[1];

$rule=$rule[0];

}else{

$method='check_'.$rule;

$method_array=get_class_methods(newValid());

if(!in_array($method,$method_array)){

self::$error[]="Methodnotexist.";

if(!self::$method($input[$field],$param)){

self::$error[]=self::$error_tips[$rule]self::$error_tips[$rule]:'參數(shù)格式有誤';

if(count(self::$error)==0){

return0;

returnself::$error[0];//返回第一個(gè)錯(cuò)誤

*@param$fieldstring驗(yàn)證字段

*@param$rulesstring驗(yàn)證規(guī)則required|max_len,100|min_len,6

*@returnstring

publicfunctionvalidate($field,$rules)

$rules=explode('|',$rules);

foreach($rulesas$rule){

$method=null;

$param=null;

//Checkifwehaveruleparameters

if(strstr($rule,',')!==false){

$rule=explode(',',$rule);

$method='check_'.$rule[0];

$param=$rule[1];

$rule=$rule[0];

}else{

$method='check_'.$rule;

$method_array=get_class_methods(newValid());

if(!in_array($method,$method_array)){

self::$error[]="Methodnotexist.";

if(!self::$method($field,$param)){

self::$error[]=self::$error_tips[$rule]self::$error_tips[$rule]:'參數(shù)格式有誤';

if(count(self::$error)==0){

return0;

returnself::$error[0];//返回第一個(gè)錯(cuò)誤

publicstaticfunctioncheck_required($field){

if(isset($field)($field===false||$field===0||$field===0.0||$field==='0'||!empty($field))){

returntrue;

}else{

returnfalse;

*簡(jiǎn)寫

*@param$field

*@returnbool

publicstaticfunctioncheck_r($field){

if(isset($field)($field===false||$field===0||$field===0.0||$field==='0'||!empty($field))){

returntrue;

}else{

returnfalse;

publicstaticfunctioncheck_tel($field){

if(preg_match("/^1[345678]{1}\d{9}$/",$field)){

returntrue;

}else{

returnfalse;

publicstaticfunctioncheck_email($field){

if(preg_match("/^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/",$field)){

returntrue;

}else{

returnfalse;

publicstaticfunctioncheck_max_len($field,$param=null){

if(function_exists('mb_strlen')){

if(mb_strlen($field)=(int)$param){

returntrue;

}else{

returnfalse;

}else{

if(strlen($field)=(int)$param){

returntrue;

}else{

returnfalse;

publicstaticfunctioncheck_min_len($field,$param=null){

if(function_exists('mb_strlen')){

if(mb_strlen($field)=(int)$param){

returntrue;

}else{

returnfalse;

}else{

if(strlen($field)=(int)$param){

returntrue;

}else{

returnfalse;

publicstaticfunctioncheck_regex($field,$param=null)

$regex=$param;

if(preg_match($regex,$field)){

returntrue;

}else{

returnfalse;

使用如下

vendor('Func.Valid');

$validators=[

'tel'='required|tel',

'name'='required',

'email'='r|email',

'password'='r|min_len,6|max_len,12'

if($err=Valid::is_valid($validators,$_POST)){

$this-json-setErr(10001,$err);

$this-json-Send();

繼續(xù)優(yōu)化!支持錯(cuò)誤提示中,添加參數(shù)。

*CreatedbyPhpStorm.

*User:jiqing

*Date:18-7-24

*Time:下午4:36

*常用驗(yàn)證

classValid

staticprotected$error;

*@param$validatorsarrayarray('email'='required|valid_email')

*@param$inputarraypost數(shù)據(jù)

*@returnstring

publicfunctionis_valid($validators,$input){

foreach($validatorsas$field=$rules){

if(!isset($input[$field])||empty($input[$field])){

self::$error[]="缺少參數(shù)";

$rules=explode('|',$rules);

foreach($rulesas$rule){

$method=null;

$param=null;

//Checkifwehaveruleparameters

if(strstr($rule,',')!==false){

$rule=explode(',',$rule);

$method='check_'.$rule[0];

$param=$rule[1];

$rule=$rule[0];

}else{

$method='check_'.$rule;

$method_array=get_class_methods(newValid());

if(!in_array($method,$method_array)){

self::$error[]="Methodnotexist.";

if(!self::$method($input[$field],$param)){

self::$error[]=self::get_error_tips($rule,$param);

if(count(self::$error)==0){

return0;

returnself::$error[0];//返回第一個(gè)錯(cuò)誤

*@param$fieldstring驗(yàn)證字段

*@param$rulesstring驗(yàn)證規(guī)則required|max_len,100|min_len,6

*@returnstring

publicfunctionvalidate($field,$rules)

$rules=explode('|',$rules);

foreach($rulesas$rule){

$method=null;

$param=null;

//Checkifwehaveruleparameters

if(strstr($rule,',')!==false){

$rule=explode(',',$rule);

$method='check_'.$rule[0];

$param=$rule[1];

$rule=$rule[0];

}else{

$method='check_'.$rule;

$method_array=get_class_methods(newValid());

if(!in_array($method,$method_array)){

self::$error[]="Methodnotexist.";

if(!self::$method($field,$param)){

self::$error[]=self::get_error_tips($rule,$param);

if(count(self::$error)==0){

return0;

returnself::$error[0];//返回第一個(gè)錯(cuò)誤

*靈活獲取參數(shù)

*@param$rule

*@param$param

publicstaticfunctionget_error_tips($rule,$param){

$error_tips=[

'tel'='手機(jī)號(hào)格式有誤',

'email'='郵箱格式有誤',

'max_len'='參數(shù)長(zhǎng)度不能超過最大長(zhǎng)度'.$param,

'min_len'='參數(shù)長(zhǎng)度不能小于最小長(zhǎng)度'.$param,

'required'='缺少參數(shù)',

'r'='缺少參數(shù)'

return$error_tips[$rule]$error_tips[$rule]:'參數(shù)格式有誤';

publicstaticfunctioncheck_required($field){

if(isset($field)($field===false||$field===0||$field===0.0||$field==='0'||!empty($field))){

returntrue;

}else{

returnfalse;

*簡(jiǎn)寫

*@param$field

*@returnbool

publicstaticfunctioncheck_r($field){

if(isset($field)($field===false||$field===0||$field===0.0||$field==='0'||!empty($field))){

returntrue;

}else{

returnfalse;

publicstaticfunctioncheck_tel($field){

if(preg_match("/^1[345678]{1}\d{9}$/",$field)){

returntrue;

}else{

returnfalse;

publicstaticfunctioncheck_email($field){

if(preg_match("/^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/",$field)){

returntrue;

}else{

returnfalse;

publicstaticfunctioncheck_max_len(

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論