PHP 身份证号码解析
Posted zjfree
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP 身份证号码解析相关的知识,希望对你有一定的参考价值。
主要功能:
验证身份证合法性
解析身份证信息
解析结果
array(5) { ["code"]=> string(18) "37088219701002123X" ["sex"]=> string(3) "男" ["area"]=> array(5) { ["code"]=> string(6) "370882" ["province"]=> string(9) "山东省" ["city"]=> string(9) "济宁市" ["area"]=> string(9) "兖州市" ["name"]=> string(27) "山东省济宁市兖州市" } ["age"]=> int(50) ["birthday"]=> string(10) "1970-10-02" }
使用方法
<?php include "IdCard.php"; use appclassesIdCard; $code = ‘350402198007276693‘; // 验证 $res = IdCard::check($code); var_dump($res); // 解析 $res = IdCard::parse($code); var_dump($res);
遇到的问题:
历史上有15位身份证,现在可以只考虑18位身份证。
在通过区域编码获取区域信息时,因为有撤销县设区等情况,导致历史的编码和最新的编号不一致。
参考:
身份证验证算法: https://www.cnblogs.com/itbsl/p/11282677.html
中国行政区域:https://github.com/small-dream/China_Province_City/blob/master/2019年11月中华人民共和国县以上行政区划代码.json
历史身份证区域码:https://github.com/yescallop/areacodes
源码下载:
包含全国在线的 省市区数据【2019年】
包含全国历史上的区域编码变更数据【2019年】
https://files.cnblogs.com/files/zjfree/id_card.zip
以上是关于PHP 身份证号码解析的主要内容,如果未能解决你的问题,请参考以下文章
Firebase 使用电话号码进行身份验证:使用未解析的标识符 AuthAPNSTokenTypeProd 和 UIBackgroundFetchResultNoData 错误