php不用正则验证真假身份证 身份证号码验证
来源:互联网 发布:windows可以不激活码 编辑:程序博客网 时间:2024/05/09 05:16
来源URL:http://www.jb51.net/article/42821.htm
<?php $IDCard = new IDCard(); var_dump($IDCard::isCard($_GET['card'])); /** * 身份证处理类 */class IDCard { //检证身份证是否正确 public static function isCard($card) { $card = self::to18Card($card); if (strlen($card) != 18) { return false; } $cardBase = substr($card, 0, 17); return (self::getVerifyNum($cardBase) == strtoupper(substr($card, 17, 1))); } //格式化15位身份证号码为18位 public static function to18Card($card) { $card = trim($card); if (strlen($card) == 18) { return $card; } if (strlen($card) != 15) { return false; } // 如果身份证顺序码是996 997 998 999,这些是为百岁以上老人的特殊编码 if (array_search(substr($card, 12, 3), array('996', '997', '998', '999')) !== false) { $card = substr($card, 0, 6) . '18' . substr($card, 6, 9); } else { $card = substr($card, 0, 6) . '19' . substr($card, 6, 9); } $card = $card . self::getVerifyNum($card); return $card; } // 计算身份证校验码,根据国家标准gb 11643-1999 private static function getVerifyNum($cardBase) { if (strlen($cardBase) != 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($cardBase); $i++) { $checksum += substr($cardBase, $i, 1) * $factor[$i]; } $mod = $checksum % 11; $verify_number = $verify_number_list[$mod]; return $verify_number; } }
0 0
- php不用正则验证真假身份证 身份证号码验证
- 验证二代身份证真假
- 正则表达式验证身份证号码
- 身份证号码验证正则表达式
- 正则表达式验证身份证号码
- 身份证号码验证正则表达式
- js 正则验证身份证号码
- 身份证号码的正则验证
- PHP 验证身份证号码有效性
- php 验证身份证号码
- PHP 身份证号码验证代码
- php身份证号码验证
- PHP-身份证号码验证
- php 验证身份证号码
- 身份证验证【正则表达式】
- 正则 身份证验证
- 正则验证身份证
- 正则表达式 身份证验证
- Xcode 必备插件
- Storyboard 跳转 和 传值
- 【Caffe实践】 多目标输出探究
- python twisted
- 阿里巴巴、华为、万科、新东方的前高管都去哪了
- php不用正则验证真假身份证 身份证号码验证
- 积跬步至千里——算法强化训练(8)卡特兰数相关题目求解
- centos 下 Qt Creator 的安装使用
- 双外网IP-StunServer-AWS-EC2
- h5页面被QQ浏览器重新排版
- 浅析Android中的visibility属性
- 关于完全退出当前APP的分享。
- android TextView增加下划线或者删除线
- 微软100题(47)最长递减子序列