slince/china

中国资料库查询大全

1.1.0 2022-03-18 10:20 UTC

This package is auto-updated.

Last update: 2024-10-18 16:02:47 UTC


README

中国

我国的资料库查询库;本库主要包含民族、节日、地址库信息的查询;部分数据来源采集自百科以及国家统计局;欢迎收藏欢迎贡献代码;

Build Status Coverage Status Latest Stable Version Scrutinizer

Installation

执行下面命令安装

> composer require slince/china

Document

你可以在这里发现文档;

Basic Usage

节日查询

$china = new China();

$holidayService = $chna->getHoliday();

print_r($holidayService->findAll());

按名称查找节日

$yuandan = $holidayService->find('元旦节'):
 
 echo $yuandan->getDate(); //输出 1月1日

民族查询

$china = new China();

$nationalityService = $chna->getNationality();

print_r($nationalityService->findAll());

按名称查找

$hezhe = $nationalityService->find('赫哲族'):
 
 echo $hezhe->getPinyin(); //输出“hè zhé zú”
 echo $hezhe->getPopulation(); //输出人口

地址库查询

$china = new China();

$regionService = $china->getRegion();

print_r($regionService->getProvinces()); //获取树形省市县地区结构

按名称查找地区

$bengbushi = $regionService->findByName('蚌埠市');
echo $bengbushi->getParent()->getName(); //输出蚌埠市所属省, 安徽省

查询身份证所在地

$huaiyuan = $regionService->findByIdCard('340321199212026972');

地区链功能

通过AddressInterfacegetParent()getChildren()方法你可以自由地查找当前地区的上级或者下级地区,下级地区集合是RegionCollectionInterfaec 实例;

$yuhuiqu = $bengbushi->getChildren()->findByName('禹会区'); //蚌埠市下属禹会区
$yuhuiqu->getParent()->getChildren()->findByName('淮上区'); //禹会区同级淮上区

Json Serialize

$bengbushi = $regionService->findByName('蚌埠市');
echo json_encode($bengbushi);

上述代码会输出蚌埠市及其下属地区的完整的json树形结构;如果你不需要的话下级地区的话请将children设置为空

$bengbushi = $regionService->findByName('蚌埠市');
$bengbushi = clone $bengbushi; //此处需要克隆对象,如果直接修改会破坏原有的地区树结构
$bengbushi->setChildren([]);
echo json_encode($bengbushi);

建议:在电商系统中城市县三级地区联动的数据可以使用此方法获取,避免将数据导入数据库再从数据库获取;

命令行工具

执行下面命令查看支持的所有命令

$ china list

输出信息:

Available commands:
  help                   Displays help for a command
  list                   Lists commands
 crawl
  crawl:holiday          采集节假日数据
  crawl:nationality      从百度百科采集民族信息
  crawl:region           从国家统计局采集地区信息
 view
  view:holiday      展示节假日信息
  view:nationality  展示民族数据信息
  view:region       展示我国省市县信息

例: 展示我国所有的省、直辖市、自治区以及特别行政区:

$ china  dashboard:region

上述命令会输出以下结果:

 -------- ------------------ ------
  Code     名称               类型
 -------- ------------------ ------
  110000   北京市             省
  120000   天津市             省
  130000   河北省             省
  140000   山西省             省
  150000   内蒙古自治区       省
  210000   辽宁省             省
  220000   吉林省             省
  230000   黑龙江省           省
  310000   上海市             省
  320000   江苏省             省
  330000   浙江省             省
  340000   安徽省             省
  350000   福建省             省
  360000   江西省             省
  370000   山东省             省
  410000   河南省             省
  420000   湖北省             省
  430000   湖南省             省
  440000   广东省             省
  450000   广西壮族自治区     省
  460000   海南省             省
  500000   重庆市             省
  510000   四川省             省
  520000   贵州省             省
  530000   云南省             省
  540000   西藏自治区         省
  610000   陕西省             省
  620000   甘肃省             省
  630000   青海省             省
  640000   宁夏回族自治区     省
  650000   新疆维吾尔自治区   省
  710000   台湾省             省
  810000   香港特别行政区     省
  820000   澳门特别行政区     省
 -------- ------------------ ------

...

License

The MIT license. See MIT