hejunjie/china-division
Composer 安装命令:
composer require hejunjie/china-division
包简介
定期更新,全国最新省市区划分数据,身份证号码解析地址,支持 Composer 安装与版本控制,适用于表单选项、数据校验、地址解析等场景 | Regularly updated dataset of China's administrative divisions with ID-card address parsing. Distributed via Composer and versioned for use in forms, validation, and address-related features
README 文档
README
English | 简体中文
Regularly updated dataset of China's administrative divisions with ID-card address parsing. Distributed via Composer and versioned for use in forms, validation, and address-related scenarios.
This project has been parsed by Zread. View project overview
Features
- 📦 Nationwide administrative division data, synced regularly from public sources like the National Bureau of Statistics
- 🆔 ID-card parsing: address lookup, gender, date of birth, and checksum validation
- 📅 Historical data and change records — trace revoked, merged, or renamed regions
- 🔗 Built-in cascader data conversion, ready for frontend province-city-district linkage components
- 🏷 City tier classification (level_1 / level_2 / level_3)
- 🚀 Composer install, zero dependencies
Requirements
- PHP >= 7.4
Installation
composer require hejunjie/china-division
Included Data Files
| File | Description |
|---|---|
data.json |
Current valid administrative division data |
history.json |
Historical region data (revoked, merged, or renamed regions) |
diff.json |
Administrative division change records (region code mappings) |
You can also work with the JSON files directly without the Division helper class.
Usage
Retrieving Data
<?php use Hejunjie\ChinaDivision\Division; // Current division data $data = Division::getData(); // Historical division data $history = Division::getHistory(); // Change records $diff = Division::getDiff();
ID-card Parsing
<?php use Hejunjie\ChinaDivision\Division; // Get province, city, and district from an ID-card number $info = Division::getAddressInfo('11010119960124993X'); // ['province' => '北京市', 'city' => '市辖区', 'area' => '东城区'] // Get gender $sex = Division::getGenderFromIdCard('11010119960124993X'); // '男' // Get date of birth $birthday = Division::getBirthdayFromIdCard('11010119960124993X'); // ['year' => '1996', 'month' => '01', 'day' => '24'] // Validate an ID-card number $isValid = Division::isValidIdCard('11010119960124993X'); // true
Cascader Data & City Tiers
<?php use Hejunjie\ChinaDivision\Division; // Convert to cascader format (for frontend province-city-district linkage components) $cascaderData = Division::convertToCascaderData(); // Get city tier data (level_1 / level_2 / level_3) $levels = Division::getCityLevels();
Note
The methods above provide basic usability. For performance-critical scenarios, consider caching the data in Redis and implementing your own query logic.
Online Tool
Don't want to deploy? Use the online version: china-division online tool, with batch query support.
Updates
Data is sourced from public channels such as the National Bureau of Statistics and updated periodically. PRs and issues for new data changes are always welcome.
This library will continue to be updated. Suggestions and feedback are always welcome.
hejunjie/china-division 适用场景与选型建议
hejunjie/china-division 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 1.61k 次下载、GitHub Stars 达 3, 最近一次更新时间为 2025 年 04 月 12 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 hejunjie/china-division 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 hejunjie/china-division 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 1.61k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 3
- 点击次数: 27
- 依赖项目数: 3
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-04-12