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

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.
本帖由系统于 5年前 自动加精
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
讨论数量: 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;
5年前 评论

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

5年前 评论

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

5年前 评论

@lovecn echo 的用法去看下文档

5年前 评论

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