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初学者的8点有效建议
Nov 20 PHP
防止本地用户用fsockopen DDOS攻击对策
Nov 02 PHP
解析php函数method_exists()与is_callable()的区别
Jun 21 PHP
PHP父类调用子类方法的代码例子
Apr 09 PHP
ThinkPHP实现将本地文件打包成zip下载
Jun 26 PHP
thinkphp备份数据库的方法分享
Jan 04 PHP
将PHP从5.3.28升级到5.3.29时Nginx出现502错误
May 09 PHP
Codeigniter控制器controller继承问题实例分析
Jan 19 PHP
php构造方法中析构方法在继承中的表现
Apr 12 PHP
PHP 实现公历日期与农历日期的互转换
Sep 13 PHP
Ajax中的JSON格式与php传输过程全面解析
Nov 14 PHP
PHP实现链式操作的三种方法详解
Nov 16 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 字符转义 注意事项
2009/05/27 PHP
使用PHP提取视频网站页面中的FLASH地址的代码
2010/04/17 PHP
php图片处理函数获取类型及扩展名实例
2014/11/19 PHP
php递归实现无限分类的方法
2015/07/28 PHP
使用phpexcel类实现excel导入mysql数据库功能(实例代码)
2016/05/12 PHP
php编译安装php-amq扩展简明教程
2016/06/25 PHP
php面试实现反射注入的详细方法
2019/09/30 PHP
fckeditor 获取文本框值的实现代码
2009/02/09 Javascript
JavaScript window.setTimeout() 的详细用法
2009/11/04 Javascript
基于jquery的让页面控件不可用的实现代码
2010/04/27 Javascript
ExtJS4中使用mixins实现多继承示例
2013/12/03 Javascript
jQuery制作拼图小游戏
2015/01/12 Javascript
jQuery插件Slider Revolution实现响应动画滑动图片切换效果
2015/06/05 Javascript
angularjs学习笔记之三大模块(modal,controller,view)
2015/09/26 Javascript
JS简单模拟触发按钮点击功能的方法
2015/11/30 Javascript
实例讲解使用原生JavaScript处理AJAX请求的方法
2016/05/10 Javascript
解读Bootstrap v4 sass设计
2016/05/29 Javascript
Bootstrap布局组件教程之Bootstrap下拉菜单
2016/06/12 Javascript
详解angular2封装material2对话框组件
2017/03/03 Javascript
详解Vue 实例中的生命周期钩子
2017/03/21 Javascript
JS实现异步上传压缩图片
2017/04/22 Javascript
浅谈angularjs中响应回车事件
2017/04/24 Javascript
微信小程序基于slider组件动态修改标签透明度的方法示例
2017/12/04 Javascript
深入理解ES6中let和闭包
2018/02/22 Javascript
分享5个小技巧让你写出更好的 JavaScript 条件语句
2018/10/20 Javascript
JS前端基于canvas给图片添加水印
2020/11/11 Javascript
[00:20]DOTA2荣耀之路7:-ah fu-抢盾
2018/05/31 DOTA
python网络编程学习笔记(九):数据库客户端 DB-API
2014/06/09 Python
pandas 条件搜索返回列表的方法
2018/10/30 Python
Python3 修改默认环境的方法
2019/02/16 Python
python如何爬取网页中的文字
2020/07/28 Python
产品陈列协议书(标准版)
2014/09/17 职场文书
学前班语言教学计划
2015/01/20 职场文书
法律进社区活动总结
2015/05/07 职场文书
贫困证明书范文
2015/06/16 职场文书
Python实战之实现康威生命游戏
2021/04/26 Python