大陸居民身份證、港澳臺居民居住證 Composer 包:驗證、獲取基本資訊以及生成假資料

jxlwqq發表於2018-09-07

地址:https://github.com/jxlwqq/id-validator

中華人民共和國居民身份證中華人民共和國港澳居民居住證以及中華人民共和國臺灣居民居住證號碼驗證工具(PHP Composer 版)支援 15 位與 18 位號碼。基於 JavaScript 版本

安裝

composer require "jxlwqq/id-validator"

使用

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',               // 校驗碼
]

生成可透過校驗的假資料

偽造符合校驗的身份證:

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, '臺灣省', '20131010', 0); // 生成出生於 2013 年 10 月 10 日臺灣省的女性居民居住證
$idValidator->fakeId(true, '香港特別行政區', '19970701', 0); // 生成出生於 1997 年 7 月 1 日香港特別行政區的女性居民居住證

參考資料

Change Log

  • 1.1.0 身份證號返回資訊新增生肖和星座內容;

  • 1.2.0 支援港澳臺居民居住證;

  • 1.3.0 行政區劃程式碼(地址碼)資料改由從中華人民共和國民政部官方網站獲取;

  • 1.4.0 支援查詢因行政區變更而廢棄的地址碼;

  • 1.4.2 fakeId() 方法增加可選引數;

License

MIT

本作品採用《CC 協議》,轉載必須註明作者和本文連結

相關文章