PHPackages                             medz/id-card-of-china - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. medz/id-card-of-china

AbandonedArchivedLibrary

medz/id-card-of-china
=====================

中华人民共和国身份证（The identity card of the people's Republic of China）

1.1.0(6y ago)17720.1k19MITPHPPHP &gt;=7.1.3

Since May 27Pushed 6y ago6 watchersCompare

[ Source](https://github.com/medz/id-card-of-china)[ Packagist](https://packagist.org/packages/medz/id-card-of-china)[ RSS](/packages/medz-id-card-of-china/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (2)Dependencies (2)Versions (3)Used By (0)

Identity Card Of China (PHP)
============================

[](#identity-card-of-china-php)

中华人民共和国身份证（The identity card of the people's Republic of China）

[![Build Status](https://camo.githubusercontent.com/1d2cb345fd907f51c94ad7eba782b1fd34ac8692d869c0205b9aaae659e2c3d5/68747470733a2f2f7472617669732d63692e636f6d2f6d65647a2f69642d636172642d6f662d6368696e612e7376673f6272616e63683d6d6173746572)](https://travis-ci.com/medz/id-card-of-china)

> JavaScript 版本：

`id-card-of-china` 是一个基于「公民身份号码」规则获取公民身份号码中包含的基础信息组件。

安装
--

[](#安装)

- 你的 PHP 版本应该 `>= 7.0`

我们使用 Composer 安装：

```
composer require medz/id-card-of-china
```

使用
--

[](#使用)

遵循 PHP-MD 原则，这个工具不提供静态调用，所以使用需要进行对象实例化：

```
use Medz\IdentityCard\China\Identity;

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

APIs
----

[](#apis)

> 基于 `Medz\IdentityCard\China\IdentityInterface` 实例

- `legal`：检查公民身份号码是否合法
- `birthday`：获取公民身份号码中包含的生日信息
- `gender`：获取身份证包含的性别信息
- `region`: 获取身份证包含的地区信息，返回 `Medz\IdentityCard\China\Region\RegionInterface` 实例

### `region` 对象 APIs

[](#region-对象-apis)

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

### 演示

[](#演示)

```
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(' ') // 福建省 莆田市 城厢区
);
```

疑问解答
----

[](#疑问解答)

1. 问：为什么不添加年龄、星座还有属相等信息？

    答：因为年龄需要专门的时间组件去计算，星座如果是「粗略」计算可以获得，但是没有意义，属相更加复杂，负责任的转换这些属性都比简单转换复杂，简单转换出来的不够准确。同样也失去了包本身该有的功能，例如年龄可以交给「时间组件」等。
2. 问：这个包到底干啥的？

    答：这个包就是提取公民身份号码所包含的基础信息
3. 问：可以用来验证人或者其他的吗？

    答：不基于公安部的 API 验证的身份证组件都不能叫验证组件，现在所有的 ID Card 组件都只能提取公民身份号码所包含的信息，如果说验证，那唯一能验证的就是公民身份号码是否是一个合法的公民身份号码。
4. 问：如何获取年龄？ 答：例如在 PHP 中，获取年龄是一个很简单的时区，我用最快的例子，你依赖 `nesbot/carbon` 这个「时间工具」包，依赖代码：

    ```
    composer require nesbot/carbon
    ```

    然后看我下面的 PHP 代码：

    ```
    use Carbon\Carbon;
    $birthday = new Carbon($identity->birthday());
    $age = $birthday->diffInYears();
    ```

    好了，你打印下 `$age` 试试看！

LICENSE
-------

[](#license)

This component follows the MIT open source agreement.

###  Health Score

37

—

LowBetter than 83% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity42

Moderate usage in the ecosystem

Community14

Small or concentrated contributor base

Maturity59

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~566 days

Total

2

Last Release

2341d ago

PHP version history (2 changes)v1.0.0PHP &gt;=7.0

1.1.0PHP &gt;=7.1.3

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/5564821?v=4)[Seven Du](/maintainers/medz)[@medz](https://github.com/medz)

---

Top Contributors

[![medz](https://avatars.githubusercontent.com/u/5564821?v=4)](https://github.com/medz "medz (22 commits)")

---

Tags

cardchinaidid-cardidentityidentitycardidChina

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/medz-id-card-of-china/health.svg)

```
[![Health](https://phpackages.com/badges/medz-id-card-of-china/health.svg)](https://phpackages.com/packages/medz-id-card-of-china)
```

###  Alternatives

[league/oauth2-client

OAuth 2.0 Client Library

3.8k118.6M1.2k](/packages/league-oauth2-client)[league/oauth1-client

OAuth 1.0 Client Library

99698.8M106](/packages/league-oauth1-client)[onelogin/php-saml

PHP SAML Toolkit

1.3k44.0M107](/packages/onelogin-php-saml)[alicfeng/identity-card

IdentityCard Library

1228.5k](/packages/alicfeng-identity-card)[outl1ne/nova-detached-filters

This Laravel Nova package allows you to detach filters from the filter dropdown

64343.5k](/packages/outl1ne-nova-detached-filters)[facile-it/php-openid-client

OpenID (OIDC) Client

42592.7k7](/packages/facile-it-php-openid-client)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
