1 Star 2 Fork 1

twoditl / id-validator

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

IdValidator.php

中华人民共和国居民身份证中华人民共和国港澳居民居住证以及中华人民共和国台湾居民居住证号码验证工具(PHP Composer 版)支持 15 位与 18 位号码。

Build Status StyleCI Scrutinizer Code Quality FOSSA Status

安装

composer require "jxlwqq/id-validator"

注:如果 require 失败,解决方案见#13

使用

440308199901101512610104620927690 示例大陆居民身份证均为随机生成的假数据,如撞车,请联系删除。 810000199408230021830000199201300022 示例港澳台居民居住证为北京市公安局公布的居住证样式号码。

验证身份证号合法性

验证身份证号是否合法,合法返回 true,不合法返回 false

use Jxlwqq\IdValidator\IdValidator;

$idValidator = new IdValidator();
$idValidator->isValid('440308199901101512'); // 大陆居民身份证 18 位
$idValidator->isValid('610104620927690');    // 大陆居民身份证 15 位
$idValidator->isValid('810000199408230021'); // 港澳居民居住证 18 位
$idValidator->isValid('830000199201300022'); // 台湾居民居住证 18 位

获取身份证号信息

当身份证号合法时,返回分析信息(地区、出生日期、星座、生肖、性别、校验位),不合法返回 false

use Jxlwqq\IdValidator\IdValidator;

$idValidator = new IdValidator();
$idValidator->getInfo('440308199901101512'); // 18 位
$idValidator->getInfo('610104620927690');    // 15 位

返回信息格式如下:

[
'addressCode'   => '440308',          // 地址码   
'abandoned'     => 0,                 // 地址码是否废弃,1 为废弃的,0 为正在使用的
'address'       => '广东省深圳市盐田区', // 地址
'birthdayCode'  => '1999-01-10',      // 出生日期
'constellation' => '水瓶座',           // 星座
'chineseZodiac' => '卯兔',             // 生肖
'sex'           => 1,                 // 性别,1 为男性,0 为女性
'length'        => 18,                // 号码长度
'checkBit'      => '2',               // 校验码
]

注:判断地址码是否废弃的依据是中华人民共和国行政区划代码历史数据集,本数据集的采集源来自:中华人民共和国民政部,每年更新一次。本数据集采用 csv 格式存储,方便大家进行数据分析或者开发其他语言的版本。

生成可通过校验的假数据

伪造符合校验的身份证:

fakeId() 方法有 4 个可选参数:

  • $eighteen 是否生成 18 位号码,默认为 true
  • $address 地址,即省市县三级地区官方全称,如北京市台湾省香港特别行政区深圳市黄浦区等,默认或参数非法,则生成合法的随机地址;
  • $birthday 出生日期,如 200019880119990101 等,默认或参数非法,则生成合法的随机出生日期;
  • $sex 性别,1 为男性,0 为女性,默认或参数非法,则生成合法的随机性别;
use Jxlwqq\IdValidator\IdValidator;

$idValidator = new IdValidator();
$idValidator->fakeId();                                    // 18 位
$idValidator->fakeId(false);                               // 15 位
$idValidator->fakeId(true, '上海市', '2000', 1);            // 生成出生于 2000 年上海市的男性居民身份证
$idValidator->fakeId(true, '南山区', '1999', 0);            // 生成出生于 1999 年广东省深圳市南山区的女性居民身份证
$idValidator->fakeId(true, '江苏省', '200001', 1));         // 生成出生于 2000 年 1 月江苏省的男性居民身份证
$idValidator->fakeId(true, '厦门市', '199701', 0));         // 生成出生于 2000 年 1 月福建省厦门市的女性居民身份证
$idValidator->fakeId(true, '台湾省', '20131010', 0);        // 生成出生于 2013 年 10 月 10 日台湾省的女性居民居住证
$idValidator->fakeId(true, '香港特别行政区', '19970701', 0); // 生成出生于 1997 年 7 月 1 日香港特别行政区的女性居民居住证

15 位号码升级为 18 位

use Jxlwqq\IdValidator\IdValidator;

$idValidator = new IdValidator();
$idValidator->upgradeId('610104620927690'); // 15 位号码升级为 18 位

参考资料

Change Log

  • 1.1.0 身份证号返回信息新增生肖和星座内容;

  • 1.2.0 支持港澳台居民居住证;

  • 1.3.0 行政区划代码(地址码)数据改由从中华人民共和国民政部官方网站获取;

  • 1.4.0 支持查询因行政区变更而废弃的地址码;

  • 1.4.2 fakeId() 方法增加可选参数;

  • 1.4.11 支持 15 位身份证号码升级为 18 位;

License

MIT

The MIT License (MIT) Copyright (c) 金小龙(jxlwqq) Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

中华人民共和国居民身份证、中华人民共和国港澳居民居住证以及中华人民共和国台湾居民居住证号码验证工具(PHP Composer 版) 展开 收起
PHP
MIT
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
PHP
1
https://gitee.com/twoditl/id-validator.git
git@gitee.com:twoditl/id-validator.git
twoditl
id-validator
id-validator
master

搜索帮助