身份证信息提取和验证组件

1、安装
你的 PHP 版本应该 >= 7.0

composer require medz/id-card-of-china

2、使用

use Medz\IdentityCard\China\Identity;

$peopleIDNumber = '350301198906180060';
$peopleIdentity = new Identity($peopleIDNumber);

region对象 APIs
code: 获取 GB/T 2260 的地区行政代码
province:获取省份名称或者直辖市名称
city:获取城市名称,如果是直辖市则返回 ''
county:获取区县名称
tree:获取地区层级数组
treeString:获取地区完整字符串,支持传递一个参数作为省市区的分隔符

3、实例

use Medz\IdentityCard\China\Identity;

$peopleIDNumber = '350302198906180060';
$peopleIdentity = new Identity($peopleIDNumber);
$peopleRegion = $peopleIdentity->region();

var_dump(
        $peopleIdentity->legal(),    // true | false
        $peopleIdentity->birthday(), // 1989-06-18
        $peopleIdentity->gender(),   // 女 | 男
        $peopleRegion->code(),       // 350302
        $peopleRegion->province(),   // 福建省
        $peopleRegion->city(),       // 莆田市
        $peopleRegion->county(),     // 城厢区
        $peopleRegion->tree(),       // ["福建省", "莆田市", "城厢区"]
        $peopleRegion->treeString(' ') // 福建省 莆田市 城厢区
);
本作品采用《CC 协议》,转载必须注明作者和本文链接
不要轻易放弃。学习成长的路上,我们长路漫漫,只因学无止境 Don't give up easily. On the way of learning and growing up, we have a long way to go, just because there is no end to learning.
本帖由系统于 6年前 自动加精
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 6

这个算法是公开的吗?

public function validateCheckCode(): bool
    {
        // Init
        $identityCardNumber = $this->identityCardNumber;
        $index = $sum = 0;

        // Calculation $sum
        for ($index; $index < 17; $index++) {
            $sum += ((1 << (17 - $index)) % 11) * intval(substr($identityCardNumber, $index, 1));
        }

        // Calculation $quotiety
        $quotiety = (12 - ($sum % 11)) % 11;

        if ($quotiety < 10) {
            return intval(substr($identityCardNumber, 17, 1)) === $quotiety;
        }

        return substr($identityCardNumber, 17, 1) === 'X';
    }

📡😱 🙈
echo "\033[45;37;5m [1] \033[0m", ' 📡 Start downloading index info...', PHP_EOL;这是什么语法?

$sourceMcaTsvUrl = 'https://github.com/cn/GB2260/raw/develop/mca/201801.tsv';

// Get headers.
echo "\033[45;37;5m [1] \033[0m", ' 📡 Start downloading index info...', PHP_EOL;
6年前 评论

@lovecn 这个身份证的规则网上是公开的。
详情请看:身份证规则

6年前 评论

有一些身份证区号发生改变,但是json数据里没有怎么弄

6年前 评论

@lovecn echo 的用法去看下文档

6年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!