PHP用身份证号获取星座和生肖的方法


Posted in PHP onNovember 07, 2013
<?php

// PHP根据身份证号,自动获取对应的星座函数

function get_xingzuo($cid) { // 根据身份证号,自动返回对应的星座

 if (!isIdCard($cid)) return '';

 $bir = substr($cid,10,4);

 $month = (int)substr($bir,0,2);

 $day = (int)substr($bir,2);

 $strValue = '';

 if (($month == 1 && $day >= 20) || ($month == 2 && $day <= 18)) {

  $strValue = "水瓶座";

 } else if (($month == 2 && $day >= 19) || ($month == 3 && $day <= 20)) {

  $strValue = "双鱼座";

 } else if (($month == 3 && $day > 20) || ($month == 4 && $day <= 19)) {

  $strValue = "白羊座";

 } else if (($month == 4 && $day >= 20) || ($month == 5 && $day <= 20)) {

  $strValue = "金牛座";

 } else if (($month == 5 && $day >= 21) || ($month == 6 && $day <= 21)) {

  $strValue = "双子座";

 } else if (($month == 6 && $day > 21) || ($month == 7 && $day <= 22)) {

  $strValue = "巨蟹座";

 } else if (($month == 7 && $day > 22) || ($month == 8 && $day <= 22)) {

  $strValue = "狮子座";

 } else if (($month == 8 && $day >= 23) || ($month == 9 && $day <= 22)) {

  $strValue = "处女座";

 } else if (($month == 9 && $day >= 23) || ($month == 10 && $day <= 23)) {

  $strValue = "天秤座";

 } else if (($month == 10 && $day > 23) || ($month == 11 && $day <= 22)) {

  $strValue = "天蝎座";

 } else if (($month == 11 && $day > 22) || ($month == 12 && $day <= 21)) {

  $strValue = "射手座";

 } else if (($month == 12 && $day > 21) || ($month == 1 && $day <= 19)) {

  $strValue = "魔羯座";

 }

 return $strValue;

 

}

function get_shengxiao($cid) { //根据身份证号,自动返回对应的生肖

 if (!isIdCard($cid)) return '';

 $start = 1901;

 $end = $end = (int)substr($cid,6,4);

 $x = ($start - $end) % 12;

 $value = "";  

 if ($x == 1 || $x == -11) {$value = "鼠";}

 if ($x == 0) { $value = "牛";}

 if ($x == 11 || $x == -1) {$value = "虎";}

 if ($x == 10 || $x == -2) {$value = "兔";}

 if ($x == 9 || $x == -3) {$value = "龙";}

 if ($x == 8 || $x == -4) {$value = "蛇";}

 if ($x == 7 || $x == -5) {$value = "马";}

 if ($x == 6 || $x == -6) {$value = "羊";}

 if ($x == 5 || $x == -7) {$value = "猴";}

 if ($x == 4 || $x == -8) {$value = "鸡";}

 if ($x == 3 || $x == -9) {$value = "狗";}

 if ($x == 2 || $x == -10) {$value = "猪";}

 return $value;

}

function get_xingbie($cid) { //根据身份证号,自动返回性别

 if (!isIdCard($cid)) return '';

 $sexint = (int)substr($cid,16,1);

 

 return $sexint % 2 === 0 ? '女' : '男';

}

function isIdCard($number) { // 检查是否是身份证号

 // 转化为大写,如出现x

 $number = strtoupper($number);

 //加权因子 

 $wi = array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);

 //校验码串 

 $ai = array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');

 //按顺序循环处理前17位 

 $sigma = 0;

 for ($i = 0;$i < 17;$i++) { 

  //提取前17位的其中一位,并将变量类型转为实数 

  $b = (int) $number{$i}; 

 

  //提取相应的加权因子 

  $w = $wi[$i];

 

  //把从身份证号码中提取的一位数字和加权因子相乘,并累加

  $sigma += $b * $w; 

 }

 //计算序号 

 $snumber = $sigma % 11; 

 

 //按照序号从校验码串中提取相应的字符。 

 $check_number = $ai[$snumber];

 

 if ($number{17} == $check_number) {

  return true;

 } else {

  return false;

 }

}

?>

另外,关于身份证号验证本站还提供了身份证归属地查询工具如下:

PHP 相关文章推荐
深入PHP curl参数的详解
Jun 17 PHP
深入解析php中的foreach问题
Jun 30 PHP
php简单的留言板与回复功能具体实现
Feb 19 PHP
php获取本周开始日期和结束日期的方法
Mar 09 PHP
PHP框架Laravel学习心得体会
Oct 28 PHP
php实现36进制与10进制转换功能示例
Jan 10 PHP
php利用imagemagick实现复古老照片效果实例
Feb 16 PHP
PHP读取、解析eml文件及生成网页的方法示例
Sep 04 PHP
Laravel多用户认证系统示例详解
Mar 13 PHP
php输出控制函数和输出函数生成静态页面
Jun 27 PHP
Laravel 错误提示本地化的实现
Oct 22 PHP
PHP开发API接口签名生成及验证操作示例
May 27 PHP
php旋转图片90度的方法
Nov 07 #PHP
提高PHP编程效率的方法
Nov 07 #PHP
PHP imagegrabscreen和imagegrabwindow(截取网站缩略图)的实例代码
Nov 07 #PHP
php获取汉字首字母的函数
Nov 07 #PHP
PHP输出当前进程所有变量/常量/模块/函数/类的示例
Nov 07 #PHP
php cookie使用方法学习笔记分享
Nov 07 #PHP
PHP 5.5 创建和验证哈希最简单的方法详解
Nov 07 #PHP
You might like
php生成缩略图填充白边(等比缩略图方案)
2013/12/25 PHP
php计算当前程序执行时间示例
2014/04/24 PHP
[原创]CI(CodeIgniter)简单统计访问人数实现方法
2016/01/19 PHP
在PHP中输出JS语句以及乱码问题的解决方案
2019/02/13 PHP
Aster vs Newbee BO5 第一场2.19
2021/03/10 DOTA
Jquery 组合form元素为json格式,asp.net反序列化
2009/07/09 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(二)人物行走的实现
2013/01/23 Javascript
解决Extjs4中form表单提交后无法进入success函数问题
2013/11/26 Javascript
JQuery判断HTML元素是否存在的两种解决方法
2013/12/26 Javascript
判断浏览器的内核及版本号方法汇总
2015/01/05 Javascript
多种jQuery绑定事件的实现方式
2016/06/13 Javascript
BootStrap使用file-input插件上传图片的方法
2016/09/05 Javascript
JS实现禁止鼠标右键的功能
2016/10/15 Javascript
Angular实现一个简单的多选复选框的弹出框指令实例
2017/04/25 Javascript
JS中cookie的使用及缺点讲解
2017/05/13 Javascript
AngularJS中下拉框的基本用法示例
2017/10/11 Javascript
vue axios 给生产环境和发布环境配置不同的接口地址(推荐)
2018/05/08 Javascript
详解如何在你的Vue项目配置vux
2018/06/04 Javascript
jquery实现的放大镜效果示例
2020/02/24 jQuery
jQuery实现鼠标拖拽登录框移动效果
2020/09/13 jQuery
Python验证码识别的方法
2015/07/10 Python
Python 中 function(#) (X)格式 和 (#)在Python3.*中的注意事项
2018/11/30 Python
django 类视图的使用方法详解
2019/07/24 Python
django foreignkey外键使用的例子 相当于left join
2019/08/06 Python
通过python扫描二维码/条形码并打印数据
2019/11/14 Python
Python TCP通信客户端服务端代码实例
2019/11/21 Python
分享一个python的aes加密代码
2020/12/22 Python
国家励志奖学金获奖感言
2014/01/09 职场文书
小学生安全演讲稿
2014/04/25 职场文书
公司授权委托书样本
2014/09/15 职场文书
中小学校园安全广播稿
2014/09/29 职场文书
党的群众路线教育实践活动专题组织生活会发言材料
2014/10/17 职场文书
毕业典礼邀请函
2015/01/31 职场文书
英语投诉信范文
2015/07/03 职场文书
一文搞懂redux在react中的初步用法
2021/06/09 Javascript
MySQL去除密码登录告警的方法
2022/04/20 MySQL