课程咨询 :17156168575 QQ:2720475033

  • 收集开发常用验证方法

    发布:济南达内      来源:互联网      时间:2016-10-17

  • 我们在开发项目的时候往往会通过PHP的正则方式来判断用户所输入的信息是否合格或者正确,下面济南php培训小编给大家收集和整理成一个类,供大家参考和使用。

    如有问题请留言谈论。

    类:

    /**

    * 验证类

    *

    * @lastmodify 2014-5-16

    * @author jy625

    */

    class Verify{

    /**

    * 是否为空值

    */

    public static function isEmpty($str){

    $str = trim($str);

    return !empty($str) ? true : false;

    }

    /**

    * 数字验证

    * param:$flag : int是否是整数,float是否是浮点型

    */

    public static function isNum($str,$flag = 'float'){

    if(!self::isEmpty($str)) return false;

    if(strtolower($flag) == 'int'){

    return ((string)(int)$str === (string)$str) ? true : false;

    }else{

    return ((string)(float)$str === (string)$str) ? true : false;

    }

    }

    /**

    * 名称匹配,如用户名,目录名等

    * @param:string $str 要匹配的字符串

    * @param:$chinese 是否支持中文,默认支持,如果是匹配文件名,建议关闭此项(false)

    * @param:$charset 编码(默认utf-8,支持gb2312)

    */

    public static function isName($str,$chinese = true,$charset = 'utf-8'){

    if(!self::isEmpty($str)) return false;

    if($chinese){

    $match = (strtolower($charset) == 'gb2312') ? "/^[".chr(0xa1)."-".chr(0xff)."A-Za-z0-9_-]+$/" : "/^[x{4e00}-x{9fa5}A-Za-z0-9_]+$/u";

    }else{

    $match = '/^[A-za-z0-9_-]+$/';

    }

    return preg_match($match,$str) ? true : false;

    }

    /**

    * 邮箱验证

    */

    public static function isEmail($str){

    if(!self::isEmpty($str)) return false;

    return preg_match("/([a-z0-9]*[-_\.]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[\.][a-z]{2,3}([\.][a-z]{2})?/i",$str) ? true : false;

    }

    //手机号码验证

    public static function isMobile($str){

    $exp = "/^1[3|4|5|7|8][0-9]{9}$/";

    if(preg_match($exp,$str)){

    return true;

    }else{

    return false;

    }

    }

    /**

    * URL验证,纯网址格式,不支持IP验证

    */

    public static function isUrl($str){

    if(!self::isEmpty($str)) return false;

    return preg_match('#(http|https|ftp|ftps)://([w-]+.)+[w-]+(/[w-./?%&=]*)?#i',$str) ? true : false;

    }

    /**

    * 验证中文

    * @param:string $str 要匹配的字符串

    * @param:$charset 编码(默认utf-8,支持gb2312)

    */

    public static function isChinese($str,$charset = 'utf-8'){

    if(!self::isEmpty($str)) return false;

    $match = (strtolower($charset) == 'gb2312') ? "/^[".chr(0xa1)."-".chr(0xff)."]+$/"

    : "/^[x{4e00}-x{9fa5}]+$/u";

    return preg_match($match,$str) ? true : false;

    }

    /**

    * UTF-8验证

    */

    public static function isUtf8($str){

    if(!self::isEmpty($str)) return false;

    return (preg_match("/^([".chr(228)."-".chr(233)."]{1}[".chr(128)."-".chr(191)."]{1}[".chr(128)."-".chr(191)."]{1}){1}/",$word)

    == true || preg_match("/([".chr(228)."-".chr(233)."]{1}[".chr(128)."-".chr(191)."]{1}[".chr(128)."-".chr(191)."]{1}){1}$/",$word)

    == true || preg_match("/([".chr(228)."-".chr(233)."]{1}[".chr(128)."-".chr(191)."]{1}[".chr(128)."-".chr(191)."]{1}){2,}/",$word)

    == true) ? true : false;

    }

    /**

    * 验证长度

    * @param: string $str

    * @param: int $type(方式,默认min <= $str <= max)

    * @param: int $min,最小值;$max,最大值;

    * @param: string $charset 字符

    */

    public static function length($str,$type=3,$min=0,$max=0,$charset = 'utf-8'){

    if(!self::isEmpty($str)) return false;

    $len = mb_strlen($str,$charset);

    switch($type){

    case 1: //只匹配最小值

    return ($len >= $min) ? true : false;

    break;

    case 2: //只匹配最大值

    return ($max >= $len) ? true : false;

    break;

    default: //min <= $str <= max

    return (($min <= $len) && ($len <= $max)) ? true : false;

    }

    }

    /**

    * 验证密码

    * @param string $value

    * @param int $length

    * @return boolean

    */

    public static function isPWD($value,$minLen=6,$maxLen=16){

    $match='/^[\\~!@#$%^&*()-_=+|{}\[\],.?\/:;\'\"\d\w]{'.$minLen.','.$maxLen.'}$/';

    $v = trim($value);

    if(empty($v))

    return false;

    return preg_match($match,$v);

    }

    /**

    * 验证用户名

    * @param string $value

    * @param int $length

    * @return boolean

    */

    public static function isNames($value, $minLen=2, $maxLen=16, $charset='ALL'){

    if(empty($value))

    return false;

    switch($charset){

    case 'EN': $match = '/^[_\w\d]{'.$minLen.','.$maxLen.'}$/iu';

    break;

    case 'CN':$match = '/^[_\x{4e00}-\x{9fa5}\d]{'.$minLen.','.$maxLen.'}$/iu';

    break;

    default:$match = '/^[_\w\d\x{4e00}-\x{9fa5}]{'.$minLen.','.$maxLen.'}$/iu';

    }

    return preg_match($match,$value);

    }

    /**

    * 验证邮箱

    * @param string $value

    */

    public static function checkZip($str){

    if(strlen($str)!=6){

    return false;

    }

    if(substr($str,0,1)==0){

    return false;

    }

    return true;

    }

    /**

    * 匹配日期

    * @param string $value

    */

    public static function checkDate($str){

    $dateArr = explode("-", $str);

    if (is_numeric($dateArr[0]) && is_numeric($dateArr[1]) && is_numeric($dateArr[2])) {

    if (($dateArr[0] >= 1000 && $timeArr[0] <= 10000) && ($dateArr[1] >= 0 && $dateArr[1] <= 12) && ($dateArr[2] >= 0 && $dateArr[2] <= 31))

    return true;

    else

    return false;

    }

    return false;

    }

    /**

    * 匹配时间

    * @param string $value

    */

    public static function checkTime($str){

    $timeArr = explode(":", $str);

    if (is_numeric($timeArr[0]) && is_numeric($timeArr[1]) && is_numeric($timeArr[2])) {

    if (($timeArr[0] >= 0 && $timeArr[0] <= 23) && ($timeArr[1] >= 0 && $timeArr[1] <= 59) && ($timeArr[2] >= 0 && $timeArr[2] <= 59))

    return true;

    else

    return false;

    }

    return false;

    }

    }

    下面我们以ThinkPHP框架为示例来演示该类使用方法。

    本文以手机号验证作为实例,此验证类库还支持验证用户名、数字、邮箱、url、中文、长度、密码、日期和时间等,你可以很方便的应用到注册、登录等表单提交。

    聪明的朋友也可以复制里面的正则,应用到js正则上。

    public function check() {

    import('Org.Util.Verify');

    $verify = new \Verify();

    $mobile = I("post.mobile");

    $rs = $verify->isMobile($mobile); //判断是否是手机号

    if($rs == true){

    echo 1;

    }else{

    echo -1;

    }

    }

上一篇:如何制造文章管理系统-回收站

下一篇:PHP程序猿要如何保护身体和妹子又编码

最新开班日期  |  更多

PHP高级开发工程师就业班

PHP高级开发工程师就业班

开班日期:7月31日

PHP高级开发工程师周末班

PHP高级开发工程师周末班

开班日期:7月31日

济南PHP培训班就业班

济南PHP培训班就业班

开班日期:7月31日

PHP高级开发工程师周末班

PHP高级开发工程师周末班

开班日期:7月31日

 扫一扫,关注一下! 济南:历下区山大路47号数码港大厦 济南:历下区趵突泉北路三联商社
青岛:市南区金坛路17号 潍坊:奎文区东风东街299号建行大厦
烟台:海港路25号阳光100城市广场 临沂:兰山区红旗路1号苏宁易购
淄博:张店区金晶大道68号华润大厦 济宁:市中区太白路10号苏宁生活广场
课程培训电话:17156168575 QQ:2720475033 全国服务监督电话:400-111-8989    服务邮箱 tousu@tedu.cn

2001-2017 达内时代科技集团有限公司 版权所有 京ICP证8000853号-56