stiction / dragon
tools related to Chinese
1.6.1
2019-07-24 12:36 UTC
Requires
- php: >=7.1
Requires (Dev)
- phpunit/phpunit: ^7.5
README
中文相关的一些工具类
Installation
composer require stiction/dragon
Examples
姓名
<?php require 'vendor/autoload.php'; use Stiction\Dragon\Name; $name = new Name(); // 随机姓氏 var_dump($name->randomSurname()); // 随机名字(不含姓氏) var_dump($name->randomFirstName()); // 随机全名 var_dump($name->randomFullName());
格言
<?php require 'vendor/autoload.php'; use Stiction\Dragon\Inspiring; $inspiring = new Inspiring(); // string 一条格言 var_dump($inspiring->one()); // string[] 所有格言 var_dump($inspiring->all());
行政区划
<?php require 'vendor/autoload.php'; use Stiction\Dragon\Region; $region = new Region(); // 所有区划 var_dump($region->all()); // 省级区划 var_dump($region->provinces()); // 查找指定区划 /* array(3) { ["id"]=> string(6) "440300" ["name"]=> string(9) "深圳市" ["parent_id"]=> string(6) "440000" } */ var_dump($region->find('440300')); // 查找子区划 var_dump($region->subregions('440300'));
身份证
<?php require 'vendor/autoload.php'; use Stiction\Dragon\IdentityParser; $parser = new IdentityParser(); // 计算校验位,大写表示 // string(1) "X" var_dump($parser->calcCheckChar('36112319820726197')); // 解析身份证信息,分别为身份证完整号码、行政区划码、生日、序号、校验位、性别(F|M) /* array(6) { ["whole"]=> string(18) "36112319820726197X" ["region"]=> string(6) "361123" ["birthday"]=> string(10) "1982-07-26" ["ordinal"]=> string(3) "197" ["check"]=> string(1) "X" ["gender"]=> string(1) "M" } */ var_dump($parser->parse('36112319820726197x')); // bool(false) var_dump($parser->parse('361123198207261976'));
银行卡
<?php require 'vendor/autoload.php'; use Stiction\Dragon\Bank; $bank = new Bank(); // 计算银行卡校验位数字 // int(7) var_dump($bank->calcCheckNumber('622841407026350141'));
农历
支持公历范围:1900-01-31(含) - 2101-01-28(含)
支持农历范围:1900年正月初一(含) - 2100年腊月廿九(含)
<?php require 'vendor/autoload.php'; use Stiction\Dragon\LunarDate; /******** 公历时间戳转农历 ********/ $timestamp = 0; $date = new LunarDate($timestamp); /* array(4) { ["year"]=> int(1969) 1969年 ["month"]=> int(11) 冬月 ["day"]=> int(24) 廿四 ["leap"]=> bool(false) 不是闰月 } */ var_dump($date->info()); /******** 农历转公历时间戳 ********/ $timestamp = LunarDate::toSolar(1969, 11, 24); $date = new \DateTime('@' . $timestamp); $date->setTimeZone(new DateTimeZone('Asia/Shanghai')); // string(10) "1970-01-01" var_dump($date->format('Y-m-d')); // 闰月 $timestamp = LunarDate::toSolar(2020, 4, 5, true); $date = new \DateTime('@' . $timestamp); $date->setTimeZone(new DateTimeZone('Asia/Shanghai')); // string(10) "2020-05-27" var_dump($date->format('Y-m-d'));
其他
<?php require 'vendor/autoload.php'; use Stiction\Dragon\Misc; $misc = new Misc(); // 检查手机号码 // bool(true) var_dump($misc->checkMobile('13800138000'));