首页 > Web开发 > 详细

PHP 身份证号码解析

时间:2020-03-04 12:13:30      阅读:165      评论:0      收藏:0      [点我收藏+]

主要功能:

验证身份证合法性
解析身份证信息
解析结果

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 app\classes\IdCard;

$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 身份证号码解析

原文:https://www.cnblogs.com/zjfree/p/12408488.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!