PHPackages                             ionepub/region - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. ionepub/region

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

ionepub/region
==============

根据国家统计局统计用区划代码查询地区信息，目前数据最小单位为街道、乡镇，支持编号查询/所在省市区查询/下级查询/中文搜索。 A Chinese region search helper.

1.0(7y ago)31.2k1MITPHP

Since Sep 5Pushed 7y ago2 watchersCompare

[ Source](https://github.com/ionepub/region)[ Packagist](https://packagist.org/packages/ionepub/region)[ RSS](/packages/ionepub-region/feed)WikiDiscussions master Synced 1mo ago

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

region
======

[](#region)

[![Latest Stable Version](https://camo.githubusercontent.com/3fb9d7e5abecf0dd19deb9d6fd58949b46a94f0f1fb604439ab8bc406c08a749/68747470733a2f2f706f7365722e707567782e6f72672f696f6e657075622f726567696f6e2f762f737461626c65)](https://packagist.org/packages/ionepub/region)

[![Total Downloads](https://camo.githubusercontent.com/06bf67bed9d14aeb2d9757ece7c87819ce8e163ca66b9aeb38fd42445f4db933/68747470733a2f2f706f7365722e707567782e6f72672f696f6e657075622f726567696f6e2f646f776e6c6f616473)](https://packagist.org/packages/ionepub/region)

[![Latest Unstable Version](https://camo.githubusercontent.com/4b42187ea913687ba6793d646b29630ce21476f8e02548a66d0fed7239e4e5e5/68747470733a2f2f706f7365722e707567782e6f72672f696f6e657075622f726567696f6e2f762f756e737461626c65)](https://packagist.org/packages/ionepub/region)

[![License](https://camo.githubusercontent.com/d2d270543781990f8e8ecfe35c97ae0dcf3ca38fabea88360f445408182aa959/68747470733a2f2f706f7365722e707567782e6f72672f696f6e657075622f726567696f6e2f6c6963656e7365)](https://packagist.org/packages/ionepub/region)

> A Chinese region search helper.
>
> 中国地区信息查询辅助类。根据国家统计局统计用区划代码查询地区信息，目前数据最小单位为街道、乡镇，支持编号查询/所在省市区查询/下级查询/中文搜索。

Requirement 依赖
--------------

[](#requirement-依赖)

- catfan/medoo 1.5+
- MySQL

安装
--

[](#安装)

```
# 稳定版本
composer require ionepub/region
composer require --prefer-dist ionepub/region

# 开发版本
composer require ionepub/region:dev-master

```

> tip

如果 `composer require ionepub/region` 时报错：

```
[InvalidArgumentException]
  Could not find package ionepub/region at any version for your minimum-stabi
  lity (stable). Check the package spelling or your minimum-stability

```

需要先执行一次 `composer update nothing`，再执行require命令就可以了

由于region包依赖于[Medoo](https://medoo.in/)，安装同时也会安装[Medoo](https://medoo.in/)。

使用
--

[](#使用)

### 引用

[](#引用)

```
require 'vendor/autoload.php';
```

### 示例

[](#示例)

```
use Ionepub\Region;
try {
	// get a medoo instance
	$db = new medoo([
	    'database_type' => 'mysql',
	    'database_name' => 'test',
	    'server' => 'localhost',
	    'username' => 'root',
	    'password' => 'root',
	    'charset' => 'utf8'
	]);
	$table_name = 'region';
	// get a region instance
	// 第三个参数为true，表示首次安装，将在数据库中创建名为 $table_name 的表，并初始化地区数据
	$region = Region::init($db, $table_name, true);

	// 获取所有省份
	$province = $region->get();

	// 获取北京市信息
	$city_of_beijing = $region->get('110000000000');

	// 获取北京市下属区域信息
	$child_of_beijing = $region->child('110000000000');

	// 获取东华门街道办事处所在位置：北京市/市辖区/东城区/东华门街道办事处
	$position_of_region = $region->position('110101001000');

	// 查询名称中包含北京的地区信息
	$search_of_region = $region->search('北京');

	// 在省份中查询名称包含北京的地区信息
	$search_of_province = $region->search('北京', Region::LEVEL_PROVINCE);

	// 在所有地区中查询名称为“北京市”的地区信息（非模糊查询）
	$search3 = $region->search('北京市', Region::LEVEL_DEFAULT, Region::STRICT);

} catch (\Exception $e) {
	echo 'Error catched: ' . $e->getMessage();
}
```

返回值示例：

```
Array
(
    [regionId] => 355
    [regionCode] => 120000000000
    [regionName] => 天津市
    [regionLevel] => 2
)

```

### 首次初始化

[](#首次初始化)

```
$region = Region::init($db, $region_name, true);
```

首次初始化时，需向init静态方法传递第三个参数为`true`，此时将使用内置的sql文件向MySQL数据库中创建名为 `$table_name` 的表，并导入所有地区数据。首次初始化时，可能耗时较长。

> 当数据库中已有此表时，即使第三个参数为true，也不会再次初始化。

表结构如下：

```
CREATE TABLE `region` (
`regionId` int(11) NOT NULL AUTO_INCREMENT,
`regionCode` char(12) DEFAULT '' COMMENT '12位地区编码',
`regionName` varchar(120) DEFAULT '' COMMENT '地区名',
`regionLevel` tinyint(1) DEFAULT '0' COMMENT '地区层级，1国家2省3市4县5乡镇6村委会',
PRIMARY KEY (`regionId`),
UNIQUE KEY `code` (`regionCode`),
KEY `regionName` (`regionName`),
KEY `regionLevel` (`regionLevel`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='地区信息表';
```

### 获取实例

[](#获取实例)

```
$region = Region::init($db, $region_name);
$region = Region::init($db, $region_name, true);

```

无论第三个参数是否为true，init()都将返回一个Region实例。

### 公共常量

[](#公共常量)

- Region::LEVEL\_DEFAULT 地区层级-默认层级
- Region::LEVEL\_PROVINCE 地区层级-省级
- Region::LEVEL\_CITY 地区层级-市级
- Region::LEVEL\_DISTRICT 地区层级-县、区级
- Region::LEVEL\_TOWN 地区层级-街道、乡镇级
- Region::STRICT 严格搜索模式
- Region::NOT\_STRICT 非严格搜索模式

### 获取省份列表

[](#获取省份列表)

```
$region->get();
```

### 获取单个地区信息

[](#获取单个地区信息)

```
$region->get(1);
$region->get('110000000000');
$region->get('110000000000', Region::LEVEL_PROVINCE); // 明确获取编码为110000000000的省份地区信息
```

### 获取多个地区信息

[](#获取多个地区信息)

```
$region->get(['110000000000', 355]); // 同时获取两个地区的信息
$region->get([], Region::LEVEL_PROVINCE); // 获取所有省份信息
```

### 获取子级地区信息

[](#获取子级地区信息)

```
$region->child(3);
$region->child('110000000000');
```

child方法第二个参数接收地区层级参数，表示想要获取的子地区层级，默认为第一个参数所在层级的下一级，一般不使用

```
$region->child(3, Region::LEVEL_DEFAULT);
```

### 获取地区所在位置

[](#获取地区所在位置)

```
$region->position('110101001000');
```

position方法同样支持地区ID和地区编码传入，如市则返回省市，区则返回省市区。返回的数据按层级增序排序，包含参数所在地区。

### 按地区名称搜索

[](#按地区名称搜索)

```
$region->search('北京');
```

search方法接收3个参数：

- 地区名
- 地区层级
- 搜索模式，默认 Region::NOT\_STRICT 非严格搜索模式，即模糊搜索

```
// 查询名称中包含北京的地区信息
$region->search('北京');
// 在省份中查询名称包含北京的地区信息
$region->search('北京', Region::LEVEL_PROVINCE);
// 在所有地区中查询名称为“北京市”的地区信息（非模糊查询）
$region->search('北京市', Region::LEVEL_DEFAULT, Region::STRICT);
```

### License

[](#license)

MIT license.

###  Health Score

32

—

LowBetter than 72% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity22

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity62

Established project with proven stability

 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

Unknown

Total

1

Last Release

2813d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/a6f4f3c231f8411117d2a8d68e1be40e82064f9c8a618cc671da798ad1352315?d=identicon)[ionepub](/maintainers/ionepub)

---

Top Contributors

[![ionepub](https://avatars.githubusercontent.com/u/16647246?v=4)](https://github.com/ionepub "ionepub (2 commits)")

---

Tags

A Chinese region search helper

### Embed Badge

![Health badge](/badges/ionepub-region/health.svg)

```
[![Health](https://phpackages.com/badges/ionepub-region/health.svg)](https://phpackages.com/packages/ionepub-region)
```

PHPackages © 2026

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