Php scalable verification instances (which can be verified by email, mobile phone number, URL, and so on)

Source: Internet
Author: User
This article mainly introduces php scalable verification. The example analyzes php's common verification techniques for emails, mobile phone numbers, URLs, and so on, which are very useful. For more information, see

This article mainly introduces php scalable verification. The example analyzes php's common verification techniques for emails, mobile phone numbers, URLs, and so on, which are very useful. For more information, see

This article describes the php extension verification classes. Share it with you for your reference. The specific analysis is as follows:

An extensible php verification class is introduced here,
You can adjust the implementation of various types of verification in the class. Now it is the basic implementation method.
To add a rule, define the method directly. The method name is the rule name. For details, refer to usage.

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

The Validator. class. php file is as follows:

<? Php/*** Validator data verification class * @ package library * @ category library * @ author Steven * @ version 1.0 * // *** Validator data verification class * @ package library * @ category library * @ author Steven * @ version 1.0 */class Validator {/*** data to be verified * @ var array */private $ _ data; /*** check rule ** @ var array */private $ _ ruleList = null;/*** check result ** @ var bool */private $ _ result = null; /*** verify data information ** @ var array */private $ _ resultInfo = array (); /*** constructor * @ param array $ data to be verified */public function _ construct ($ data = null) {if ($ data) {$ this-> _ data = $ data ;}} /*** set verification rules ** @ param string $ var WITH verification item key * @ param mixed $ rule verification rule * @ return void */public function setRule ($ var, $ rule) {$ this-> _ ruleList [$ var] = $ rule;}/*** validate data ** @ param array $ data * * $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()); * * @ Return bool */public function validate ($ data = null) {$ result = true; /* returns true if no validation rule is set */if ($ this-> _ ruleList === null |! Count ($ this-> _ ruleList) {return $ result;}/* rules set, verify the rules one by one */foreach ($ this-> _ ruleList as $ ruleKey => $ ruleItem) {/* if the validation rule is a single rule */if (! Is_array ($ ruleItem) {$ ruleItem = trim ($ ruleItem); if (method_exists ($ this, $ ruleItem) {/* Verify data, save the verification result */$ tmpResult = $ this-> $ ruleItem ($ ruleKey); if (! $ TmpResult) {$ this-> _ resultInfo [$ ruleKey] [$ ruleItem] = $ tmpResult; $ result = false ;}} continue ;} /* Check multiple rules */foreach ($ ruleItem as $ ruleItemKey => $ rule) {if (! Is_array ($ rule) {$ rule = trim ($ rule); if (method_exists ($ this, $ rule) {/* check data ,, set result set */$ tmpResult = $ this-> $ rule ($ ruleKey); if (! $ TmpResult) {$ this-> _ resultInfo [$ ruleKey] [$ rule] = $ tmpResult; $ result = false ;}} else {if (method_exists ($ this, $ ruleItemKey) {/* check the data and set the result set */$ tmpResult = $ this-> $ ruleItemKey ($ ruleKey, $ rule); if (! $ TmpResult) {$ this-> _ resultInfo [$ ruleKey] [$ ruleItemKey] = $ tmpResult; $ result = false ;}}} return $ result ;} /*** obtain verification result data * @ return [type] [description] */public function getResultInfo () {return $ this-> _ resultInfo ;} /*** required parameter for verification * @ param string $ varName verification item * @ return bool */public function required ($ varName) {$ result = false; if (is_array ($ this-> _ data) & isset ($ this-> _ data [$ varName]) {$ re Sult = true;} return $ result;}/*** check parameter length ** @ param string $ varName check item * @ param array $ lengthData array ($ minLen, $ maxLen) * @ return bool */public function length ($ varName, $ lengthData) {$ result = true;/* If this item is not set, by default, it is verified by */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 ;} /*** check email ** @ param string $ varName check item * @ return bool */public function email ($ varName) {$ result = true;/* If this item is not set, by default, it is verified by */if ($ this-> required ($ varName) {$ email = trim ($ this-> _ data [$ varName]); if (preg_match ('/^ [-\ w] +? @ [-\ W.] +? $/', $ Email) {$ result = false ;}} return $ result ;} /*** verify mobile phone ** @ param string $ varName verification item * @ return bool */public function mobile ($ varName) {$ result = true;/* If this item is not set, by default, it is verified by */if ($ this-> required ($ varName) {$ mobile = trim ($ this-> _ data [$ varName]); if (! Preg_match ('/^ 1 [3458] \ d {10} $/', $ mobile) {$ result = false ;}} return $ result ;} /*** the verification parameter is a number * @ param string $ varName verification item * @ return bool */public function digit ($ varName) {$ result = false; if ($ this-> required ($ varName) & is_numeric ($ this-> _ data [$ varName]) {$ result = true;} return $ result ;} /*** check parameter: ID card * @ param string $ varName check item * @ return bool */public function ID ($ ID) {}/ *** check parameter is U RL * @ param string $ varName verification item * @ return bool */public function url ($ url) {$ result = true;/* If this item is not set, by default, it is verified by */if ($ this-> required ($ varName) {$ url = trim ($ this-> _ data [$ varName]); if (! Preg_match ('/^ (http [s]? ::)? \ W +? (\. \ W + ?) $/', $ Url) {$ result = false ;}} return $ result ;}?>

I hope this article will help you with php programming.

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.