PHP如何判断身份证号
发表于:2025-01-18 作者:千家信息网编辑
千家信息网最后更新 2025年01月18日,这篇文章将为大家详细讲解有关PHP如何判断身份证号,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。身份证号/*** 判断参数字符串是否为天朝身份证号* @param
千家信息网最后更新 2025年01月18日PHP如何判断身份证号
这篇文章将为大家详细讲解有关PHP如何判断身份证号,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
身份证号
/*** 判断参数字符串是否为天朝身份证号* @param $id 需要被判断的字符串或数字* @return mixed false 或 array[有内容的array boolean为真]*/function is_citizen_id($id) { //长度效验 18位身份证中的X为大写 $id = strtoupper($id); if(!(preg_match('/^\d{17}(\d|X)$/',$id) || preg_match('/^\d{15}$/',$id))) { return false; } //15位老号码转换为18位 并转换成字符串 $Wi = array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1); $Ai = array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'); $cardNoSum = 0; if(strlen($id)==16) { $id = substr(0, 6).'19'.substr(6, 9); for($i = 0; $i < 17; $i++) { $cardNoSum += substr($id,$i,1) * $Wi[$i]; } $seq = $cardNoSum % 11; $id = $id.$Ai[$seq]; } //效验18位身份证最后一位字符的合法性 $cardNoSum = 0; $id17 = substr($id,0,17); $lastString = substr($id,17,1); for($i = 0; $i < 17; $i++) { $cardNoSum += substr($id,$i,1) * $Wi[$i]; } $seq = $cardNoSum % 11; $realString = $Ai[$seq]; if($lastString!=$realString) {return false;} //地域效验 $oCity = array(11=>"北京",12=>"天津",13=>"河北",14=>"山西",15=>"内蒙古",21=>"辽宁",22=>"吉林",23=>"黑龙江",31=>"上海",32=>"江苏",33=>"浙江",34=>"安徽",35=>"福建",36=>"江西",37=>"山东",41=>"河南",42=>"湖北",43=>"湖南",44=>"广东",45=>"广西",46=>"海南",50=>"重庆",51=>"四川",52=>"贵州",53=>"云南",54=>"西藏",61=>"陕西",62=>"甘肃",63=>"青海",64=>"宁夏",65=>"新疆",71=>"台湾",81=>"香港",82=>"澳门",91=>"国外"); $City = substr($id, 0, 2); $BirthYear = substr($id, 6, 4); $BirthMonth = substr($id, 10, 2); $BirthDay = substr($id, 12, 2); $Sex = substr($id, 16,1) % 2 ;//男1 女0 //$Sexcn = $Sex?'男':'女'; //地域验证 if(is_null($oCity[$City])) {return false;} //出生日期效验 if($BirthYear>2078 || $BirthYear<1900) {return false;} $RealDate = strtotime($BirthYear.'-'.$BirthMonth.'-'.$BirthDay); if(date('Y',$RealDate)!=$BirthYear || date('m',$RealDate)!=$BirthMonth || date('d',$RealDate)!=$BirthDay) { return false; } return array('id'=>$id,'location'=>$oCity[$City],'Y'=>$BirthYear,'m'=>$BirthMonth,'d'=>$BirthDay,'sex'=>$Sex);}
关于"PHP如何判断身份证号"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
身份
证号
字符
字符串
效验
篇文章
内容
更多
身份证
合法性
地域
大写
天朝
长度
黑龙
上海
云南
内蒙
内蒙古
北京
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
软件开发分工流程图
服务器 多网卡
网络安全教育片依然
用友t6安装数据库补丁
山东省基础地理信息数据库
自动识别文字软件开发
原神手机端有多少个服务器
黑龙江网络技术产品介绍
服务器多域名
国内服务器 需要备案
北京语音网络技术
当下网络服务器品牌
服务器安装声卡
无忧网络技术品质保障
网络安全法 谁建群谁负责
植物小rna注释数据库
网络安全宣传周相关宣传资料
财务软件开发公司招聘
如何实现网络安全论文
浪潮服务器轨道安装
高校开展网络安全教育
鑫圣金业交易平台服务器
软件开发对英语水平的要求
电脑远程到服务器失败
湖南长沙软件开发杨城公司
逃离塔克夫南非是哪个服务器
软件开发常用的云服务器工具
访问不了别人oracle数据库
广告机网络安全管理
关于医疗方面的网络安全问题