济南PHP培训
济南市达内教育培训学校

17156168575

热门课程

收集开发常用验证方法

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

我们在开发项目的时候往往会通过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程序猿要如何保护身体和妹子又编码

马上预约七天免费体验课

姓名:

电话:

达内教育荣获“2018财年红帽中国区最佳培训合作伙伴”奖!

第十二届达内校企合作高峰论坛重点全回顾

童程童美中国少儿编程节发布:佟大为出席助力中国编程教育

PHP开发一个属于自己MVC框架(五)

选择城市和中心
贵州省

广西省

海南省

达内教育

有位老师想和您聊一聊