Heim >Backend-Entwicklung >PHP-Tutorial >一个很好的PHP验证类

一个很好的PHP验证类

WBOY
WBOYOriginal
2016-07-25 08:42:57775Durchsuche
  1. /**
  2. * 验证类
  3. *
  4. * @lastmodify 2014-5-16
  5. * @author jy625
  6. */
  7. class VerifyAction{
  8. /**
  9. * 是否为空值
  10. */
  11. public static function isEmpty($str){
  12. $str = trim($str);
  13. return !empty($str) ? true : false;
  14. }
  15. /**
  16. * 数字验证
  17. * param:$flag : int是否是整数,float是否是浮点型
  18. */
  19. public static function isNum($str,$flag = 'float'){
  20. if(!self::isEmpty($str)) return false;
  21. if(strtolower($flag) == 'int'){
  22. return ((string)(int)$str === (string)$str) ? true : false;
  23. }else{
  24. return ((string)(float)$str === (string)$str) ? true : false;
  25. }
  26. }
  27. /**
  28. * 名称匹配,如用户名,目录名等
  29. * @param:string $str 要匹配的字符串
  30. * @param:$chinese 是否支持中文,默认支持,如果是匹配文件名,建议关闭此项(false)
  31. * @param:$charset 编码(默认utf-8,支持gb2312)
  32. */
  33. public static function isName($str,$chinese = true,$charset = 'utf-8'){
  34. if(!self::isEmpty($str)) return false;
  35. if($chinese){
  36. $match = (strtolower($charset) == 'gb2312') ? "/^[".chr(0xa1)."-".chr(0xff)."A-Za-z0-9_-]+$/" : "/^[x{4e00}-x{9fa5}A-Za-z0-9_]+$/u";
  37. }else{
  38. $match = '/^[A-za-z0-9_-]+$/';
  39. }
  40. return preg_match($match,$str) ? true : false;
  41. }
  42. /**
  43. * 邮箱验证
  44. */
  45. public static function isEmail($str){
  46. if(!self::isEmpty($str)) return false;
  47. 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;
  48. }
  49. //手机号码验证
  50. public static function isMobile($str){
  51. $exp = "/^13[0-9]小贝[0-9]{8}$|15[012356789]小贝[0-9]{8}$|18[012356789]小贝[0-9]{8}$|14[57]小贝[0-9]$/";
  52. if(preg_match($exp,$str)){
  53. return true;
  54. }else{
  55. return false;
  56. }
  57. }
  58. /**
  59. * URL验证,纯网址格式,不支持IP验证
  60. */
  61. public static function isUrl($str){
  62. if(!self::isEmpty($str)) return false;
  63. return preg_match('#(http|https|ftp|ftps)://([w-]+.)+[w-]+(/[w-./?%&=]*)?#i',$str) ? true : false;
  64. }
  65. /**
  66. * 验证中文
  67. * @param:string $str 要匹配的字符串
  68. * @param:$charset 编码(默认utf-8,支持gb2312)
  69. */
  70. public static function isChinese($str,$charset = 'utf-8'){
  71. if(!self::isEmpty($str)) return false;
  72. $match = (strtolower($charset) == 'gb2312') ? "/^[".chr(0xa1)."-".chr(0xff)."]+$/"
  73. : "/^[x{4e00}-x{9fa5}]+$/u";
  74. return preg_match($match,$str) ? true : false;
  75. }
  76. /**
  77. * UTF-8验证
  78. */
  79. public static function isUtf8($str){
  80. if(!self::isEmpty($str)) return false;
  81. return (preg_match("/^([".chr(228)."-".chr(233)."]小贝[".chr(128)."-".chr(191)."]小贝[".chr(128)."-".chr(191)."]小贝)小贝/",$word)
  82. == true || preg_match("/([".chr(228)."-".chr(233)."]小贝[".chr(128)."-".chr(191)."]小贝[".chr(128)."-".chr(191)."]小贝)小贝$/",$word)
  83. == true || preg_match("/([".chr(228)."-".chr(233)."]小贝[".chr(128)."-".chr(191)."]小贝[".chr(128)."-".chr(191)."]小贝){2,}/",$word)
  84. == true) ? true : false;
  85. }
  86. /**
  87. * 验证长度
  88. * @param: string $str
  89. * @param: int $type(方式,默认min * @param: int $min,最小值;$max,最大值;
  90. * @param: string $charset 字符
  91. */
  92. public static function length($str,$type=3,$min=0,$max=0,$charset = 'utf-8'){
  93. if(!self::isEmpty($str)) return false;
  94. $len = mb_strlen($str,$charset);
  95. switch($type){
  96. case 1: //只匹配最小值
  97. return ($len >= $min) ? true : false;
  98. break;
  99. case 2: //只匹配最大值
  100. return ($max >= $len) ? true : false;
  101. break;
  102. default: //min return (($min }
  103. }
  104. /**
  105. * 验证密码
  106. * @param string $value
  107. * @param int $length
  108. * @return boolean
  109. */
  110. public static function isPWD($value,$minLen=6,$maxLen=16){
  111. $match='/^[\\~!@#$%^&*()-_=+|{}
  112. ,.?\/:;\'\"\d\w]{'.$minLen.','.$maxLen.'}$/';
  113. $v = trim($value);
  114. if(empty($v))
  115. return false;
  116. return preg_match($match,$v);
  117. }
  118. /**
  119. * 验证用户名
  120. * @param string $value
  121. * @param int $length
  122. * @return boolean
  123. */
  124. public static function isNames($value, $minLen=2, $maxLen=16, $charset='ALL'){
  125. if(empty($value))
  126. return false;
  127. switch($charset){
  128. case 'EN': $match = '/^[_\w\d]{'.$minLen.','.$maxLen.'}$/iu';
  129. break;
  130. case 'CN':$match = '/^[_\x{4e00}-\x{9fa5}\d]{'.$minLen.','.$maxLen.'}$/iu';
  131. break;
  132. default:$match = '/^[_\w\d\x{4e00}-\x{9fa5}]{'.$minLen.','.$maxLen.'}$/iu';
  133. }
  134. return preg_match($match,$value);
  135. }
  136. /**
  137. * 验证邮箱
  138. * @param string $value
  139. */
  140. public static function checkZip($str){
  141. if(strlen($str)!=6){
  142. return false;
  143. }
  144. if(substr($str,0,1)==0){
  145. return false;
  146. }
  147. return true;
  148. }
  149. /**
  150. * 匹配日期
  151. * @param string $value
  152. */
  153. public static function checkDate($str){
  154. $dateArr = explode("-", $str);
  155. if (is_numeric($dateArr[0]) && is_numeric($dateArr[1]) && is_numeric($dateArr[2])) {
  156. if (($dateArr[0] >= 1000 && $timeArr[0] = 0 && $dateArr[1] = 0 && $dateArr[2] return true;
  157. else
  158. return false;
  159. }
  160. return false;
  161. }
  162. /**
  163. * 匹配时间
  164. * @param string $value
  165. */
  166. public static function checkTime($str){
  167. $timeArr = explode(":", $str);
  168. if (is_numeric($timeArr[0]) && is_numeric($timeArr[1]) && is_numeric($timeArr[2])) {
  169. if (($timeArr[0] >= 0 && $timeArr[0] = 0 && $timeArr[1] = 0 && $timeArr[2] return true;
  170. else
  171. return false;
  172. }
  173. return false;
  174. }
  175. }
复制代码

很好, PHP


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:php 把汉字转换为拼音 Nächster Artikel:PHP的文件操作