博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php类精确验证身份证号码
阅读量:5008 次
发布时间:2019-06-12

本文共 3827 字,大约阅读时间需要 12 分钟。

checkArea($areaNum)){ return false; } } if(isset($dateNum)){ if(!$this ->checkDate($dateNum)){ return false; } } // 性别1为男,2为女 if($checkSex == 1){ if(isset($sexNum)){ if(!$this ->checkSex($sexNum)){ return false; } } }else if($checkSex == 2){ if(isset($sexNum)){ if($this ->checkSex($sexNum)){ return false; } } } if(isset($endNum)){ if(!$this ->checkEnd($endNum,$num)){ return false; } } return true; } // 验证城市 private function checkArea($area){ $num1 = substr($area,0,2); $num2 = substr($area,2,2); $num3 = substr($area,4,2); // 根据GB/T2260—999,省市代码11到65 if(10 < $num1 && $num1 < 66){ return true; }else{ return false; } //============ // 对市 区进行验证 //============ } // 验证出生日期 private function checkDate($date){ if(strlen($date) == 6){ $date1 = substr($date,0,2); $date2 = substr($date,2,2); $date3 = substr($date,4,2); $statusY = $this ->checkY('19'.$date1); }else{ $date1 = substr($date,0,4); $date2 = substr($date,4,2); $date3 = substr($date,6,2); $nowY = date("Y",time()); if(1900 < $date1 && $date1 <= $nowY){ $statusY = $this ->checkY($date1); }else{ return false; } } if(0<$date2 && $date2 <13){ if($date2 == 2){ // 润年 if($statusY){ if(0 < $date3 && $date3 <= 29){ return true; }else{ return false; } }else{ // 平年 if(0 < $date3 && $date3 <= 28){ return true; }else{ return false; } } }else{ $maxDateNum = $this ->getDateNum($date2); if(0<$date3 && $date3 <=$maxDateNum){ return true; }else{ return false; } } }else{ return false; } } // 验证性别 private function checkSex($sex){ if($sex % 2 == 0){ return false; }else{ return true; } } // 验证18位身份证最后一位 private function checkEnd($end,$num){ $checkHou = array(1,0,'x',9,8,7,6,5,4,3,2); $checkGu = array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2); $sum = 0; for($i = 0;$i < 17; $i++){ $sum += (int)$checkGu[$i] * (int)$num[$i]; } $checkHouParameter= $sum % 11; if($checkHou[$checkHouParameter] != $num[17]){ return false; }else{ return true; } } // 验证平年润年,参数年份,返回 true为润年 false为平年 private function checkY($Y){ if(getType($Y) == 'string'){ $Y = (int)$Y; } if($Y % 100 == 0){ if($Y % 400 == 0){ return true; }else{ return false; } }else if($Y % 4 == 0){ return true; }else{ return false; } } // 当月天数 参数月份(不包括2月) 返回天数 private function getDateNum($month){ if($month == 1 || $month == 3 || $month == 5 || $month == 7 || $month == 8 || $month == 10 || $month == 12){ return 31; }else if($month == 2){ }else{ return 30; } } }

 

转载于:https://www.cnblogs.com/objects/p/7122637.html

你可能感兴趣的文章
网络编程-socket并发-粘包问题
查看>>
Mitmproxy(Mitmdump) 二次代理使用方式启动python
查看>>
JSP 技术(二)--详解
查看>>
第二冲刺阶段——站立会议第十四天6月7日
查看>>
HDUOJ----Super Jumping! Jumping! Jumping!
查看>>
CronTrigger
查看>>
bzoj4378 [POI2015]Logistyka
查看>>
python 中安装pandas
查看>>
Hibernate 的<generator class="native"></generator>的不同属性含义
查看>>
linux修改root账户的用户名所得的教训
查看>>
【LeetCode】Flatten Binary Tree to Linked List
查看>>
读后感-浮生六纪
查看>>
执行指定路径的程序文件
查看>>
Leetcode-950 Reveal Cards In Increasing Order(按递增顺序显示卡牌)
查看>>
[Linux] 在 Linux CLI 使用 ssh-keygen 生成 RSA 密钥
查看>>
chown
查看>>
python MD5步骤
查看>>
数据加密相关
查看>>
MySQL基础命令
查看>>
mysql添加外键约束变为索引
查看>>