中国(大陆)公民身份证类 | 工具类篇

github/alicfeng/IdentityCard

方法

  • 获取周岁
  • 获取生日
  • 获取性别
  • 获取生肖
  • 获取星座
  • 根据出生年月日获取年龄
  • 根据出生年月日获取星座
  • 构建生成身份证图片正反面( 支持自定义身份证背景图 )
  • 根据身份证获取省、市、区

安装

在项目composer.json添加依赖,如下:

"require": {
        "alicfeng/identity-card": "~3.0"
}

或者直接通过CLI安装,如下:

composer require "alicfeng/identity-card" -vvv

版本更新说明

  • V1.0
    在版本 1.0 中,证件号码错误都是返回false
  • V2.0
    在版本 2.0 中添加异常捕获机制,证件错误将返回异常,只有c::validate($id)方法返回bool值。
  • V2.3
    在版本 2.3 添加了一个新功能,可以提供身份证信息生成身份证图片。

    注意:图片的大小为:865 * 540 px

  • V3.0 - 2019.06.25
    在版本 3.0 添加了根据省份正号码获取省、市、区行政地区中文名称。

    行政地区编码源于中华人民共和国民政部,更新于 2019-06-21


使用

use AlicFeng\IdentityCard\IdentityCard;
use AlicFeng\IdentityCard\Birthday;

$id = 'IdentityCard';
$birthday = 'birthday';

# 获取周岁 | 
$age = IdentityCard::age($id);

# 获取生日
$birthday = IdentityCard::birthday($id);

# 获取性别 | {男为M | 女为F}
$sex = IdentityCard::sex($id);

# 获取生肖
$constellation = IdentityCard::constellation($id);

# 获取星座
$star = IdentityCard::star($id);

# 获取星座
$star = Birthday::star($birthday);

# 获取年龄
$star = Birthday::age($birthday);

# 生成身份证正面
$front(resource) = IdentityCard::createFrontImage(...);

# 生成身份证反面
$back(resource) = IdentityCard::createBackImage(...);

# 获取省
$province = IdentityCard::privince($id, $default='');

# 获取市
$province = IdentityCard::city($id, $default='');

# 获取区
$province = IdentityCard::area($id, $default='');

价值源于技术,贡献源于分享 | 笔记分享归档
No matter where I am, I will reply you immediately when I see the email.
My Email: echo "YUBzYW1lZ28uY29tCg==" | base64 -d
个人比较喜欢分享,若有不对的地方非常感谢指出
相互学习、共同进步~

本帖由系统于 2个月前 自动加精
AlicFeng
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
讨论数量: 19
wanghan

谢谢,不用造轮子了~

3个月前 评论
wanghan

@AlicFeng 看了看源码,真是下功夫写的,大写的赞!

3个月前 评论

@wanghan :smile: :smile:thx for your praise~

3个月前 评论

建议 return false 改成 throw new Exception

3个月前 评论

@Outlaws 非常感谢!已经在x2.0版本上添加了证件异常捕获机制~

3个月前 评论

赞一个

3个月前 评论

先收藏码住 万一用的到呢

2个月前 评论
houmuxu

@AlicFeng 你好,这个包对性别的判断好像有点问题,比如411524199409081480这个是女,用sex函数打印出来是M

2个月前 评论

@houmuxu 非常抱歉!这是计算性别的时候出现了bug,程序已经修复了,请通过更新或者重新安装这个包来解决这个问题。

2个月前 评论
大毛

610125199409255533

试试这个身份证号码,验证不过去

2个月前 评论

@大毛 没有问题呀~是报了什么异常吗

var_dump(IdentityCard::validate('610125199409255533')); // true
2个月前 评论
大毛

@AlicFeng :sweat_smile:非常抱歉,看错位置了,应该提交到https://github.com/godruoyi/laravel-idcard-validator 这个库的,看的太多,眼花了,抱歉。。。 :pray:

2个月前 评论
LOST
if (($month == 1 && $day <= 20) && ($month == 2 && $day <= 18)) {
            return '水瓶座';
} 

这里是不是有点问题?

3周前 评论

@AlicFeng @LOST 星座的临界值有点问题 :joy:

3周前 评论
AlicFeng: 非常感谢!已经修复~ 3周前

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!