Code Monkey home page Code Monkey logo

china's Introduction

**

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

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

china's People

Contributors

slince avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

china's Issues

使用过程中报错了,set()方法不存在

"message": "Call to undefined method Slince\\Di\\Container::set()",
"exception": "Symfony\\Component\\Debug\\Exception\\FatalThrowableError",
"file": "/Applications/MAMP/htdocs/tools_dev/packages/jeffcott/china/src/China/China.php",
"line": 66,

看了一下/vendor/slince/di/Container.php里确实没有set()方法;

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.