课程咨询 :18300268127 QQ:2720475033

保险

  • PHP验证类库_收集开发常用验证方法

    发布:青岛php培训      来源:青岛php培训      时间:2016-07-21

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

    如有问题请留言谈论。

    类:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    32

    33

    34

    35

    36

    37

    38

    39

    40

    41

    42

    43

    44

    45

    46

    47

    48

    49

    50

    51

    52

    53

    54

    55

    56

    57

    58

    59

    60

    61

    62

    63

    64

    65

    66

    67

    68

    69

    70

    71

    72

    73

    74

    75

    76

    77

    78

    79

    80

    81

    82

    83

    84

    85

    86

    87

    88

    89

    90

    91

    92

    93

    94

    95

    96

    97

    98

    99

    100

    101

    102

    103

    104

    105

    106

    107

    108

    109

    110

    111

    112

    113

    114

    115

    116

    117

    118

    119

    120

    121

    122

    123

    124

    125

    126

    127

    128

    129

    130

    131

    132

    133

    134

    135

    136

    137

    138

    139

    140

    141

    142

    143

    144

    145

    146

    147

    148

    149

    150

    151

    152

    153

    154

    155

    156

    157

    158

    159

    160

    161

    162

    163

    164

    165

    166

    167

    168

    169

    170

    171

    172

    173

    174

    175

    176

    177

    178

    179

    180

    /**

    * 验证类

    *

    * @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正则上。

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12public 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;

    }

    }

上一篇:Thinkphp+uploadify批量上传图片源码下载

下一篇:fwrite

最新开班日期  |  更多

PHP高级开发工程师优选班

PHP高级开发工程师优选班

开班日期:11月30日

PHP高级开发工程师定制班

PHP高级开发工程师定制班

开班日期:11月30日

PHP高级开发工程师就业班

PHP高级开发工程师就业班

开班日期:11月30日

PHP高级开发工程师周末班

PHP高级开发工程师周末班

开班日期:11月30日

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

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

达内教育

有位老师想和您聊一聊