身份证号验证类,同时支持15位及18位身份证号
来源:互联网 发布:无线网址域名 编辑:程序博客网 时间:2024/05/19 15:20
<?php $ID = new IdNo(); @$id = $_GET['id'] ? $_GET['id'] : '452427791008313';//可自行传值,否则取默认测试身份证号var_dump($ID->checkIdno($id)); class IdNo { //检证身份证是否正确 public function checkIdno($idNo) { $idNo = self::ConvertTo18Id($idNo); if (strlen($idNo) != 18) { return false; } $idBase = substr($idNo, 0, 17); return (self::getVerifyNum($idBase) == strtoupper(substr($idNo, 17, 1))); } //格式化15位身份证号码为18位 public function ConvertTo18Id($idNo) { $idNo = trim($idNo); if (strlen($idNo) == 18) { return $idNo; } if (strlen($idNo) != 15) { return false; } // 如果身份证顺序码是996 997 998 999,这些是为百岁以上老人的特殊编码 if (array_search(substr($idNo, 12, 3), array('996', '997', '998', '999')) !== false) { $idNo = substr($idNo, 0, 6) . '18' . substr($idNo, 6, 9); } else { $idNo = substr($idNo, 0, 6) . '19' . substr($idNo, 6, 9); } $idNo = $idNo.self::getVerifyNum($idNo); return $idNo; } // 计算身份证校验码,根据【国家标准gb 11643-1999】 private function getVerifyNum($idBase) { if (strlen($idBase) != 17) { return false; } // 加权因子 $factor = array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2); // 校验码对应值 $verify_number_list = array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'); $checksum = 0; for ($i = 0; $i < strlen($idBase); $i++) { $checksum += substr($idBase, $i, 1) * $factor[$i]; } $mod = $checksum % 11; $verify_number = $verify_number_list[$mod]; return $verify_number; } } ?>
0 0
- 身份证号验证类,同时支持15位及18位身份证号
- 身份证校验(//身份证号合法性验证 //支持15位和18位身份证号//支持地址编码、出生日期、校验位验证)
- php 身份证号15和18位验证
- js身份证号码的校验,支持15位身份证号和18位身份证号
- 汇总15位身份证号和18位身份证号的区别
- 15位身份证号转换为18位身份证号
- 中国身份证号码验证,支持15,18位,可验证成功90%的身份证号
- 中国身份证号码验证,支持15,18位,可验证成功90%的身份证号
- 中国身份证号码验证,支持15,18位,可验证成功90%的身份证号
- 中国身份证号码验证,支持15,18位,可验证成功90%的身份证号
- 中国身份证号码验证,支持15,18位,可验证成功90%的身份证号
- 身份证号15->18位
- 15位的身份证号转为18位
- 15位身份证号转18位
- 身份证号转换15位与18位
- 身份证号15位转18位
- 身份证号:15位转为18位
- Java 将15位身份证号转化为18位返回,非15位身份证号原值返回
- 学习两个程序员结对编程的故事
- A. Wet Shark and Odd and Even
- 表格字段定义
- 产品运营需要具备哪些技能
- ubuntu修改计算机名
- 身份证号验证类,同时支持15位及18位身份证号
- 反编译+重新打包APK
- Drying (Poj3104,Northeastern Europe 2005, Northern Subregion)
- #学习笔记#(35)CSS3模拟时钟
- BZOJ 4337 BJOI2015 树的同构 Hash
- 表格字段合并定义
- AIM Tech Round (Div. 2)题解
- Git幕后的“故事”
- 按钮属性定义