青岛PHP培训
青岛达内职业培训学校

18300268127

热门课程

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

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

我们在开发项目的时候往往会通过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培训:服务端渲染

如何在Linux环境下安装PHP

学习PHP的正确姿势

PHP基础问题解惑

选择城市和中心
贵州省

广西省

海南省

达内教育

有位老师想和您聊一聊