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 相关文章推荐
生成ubuntu自动切换壁纸xml文件的php代码
Jul 17 PHP
zend framework配置操作数据库实例分析
Dec 06 PHP
解析php中die(),exit(),return的区别
Jun 20 PHP
smarty缓存用法分析
Dec 16 PHP
php实现在服务器端调整图片大小的方法
Jun 16 PHP
php使用CURL不依赖COOKIEJAR获取COOKIE的方法
Jun 17 PHP
php实现微信发红包
Dec 05 PHP
在WordPress中使用wp_count_posts函数来统计文章数量
Jan 05 PHP
php实现无限级分类查询(递归、非递归)
Mar 10 PHP
php自定义函数实现汉字转换utf8编码的方法
Sep 29 PHP
PHP 极验验证码实例讲解
Sep 29 PHP
基于PHP-FPM进程池探秘
Oct 17 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/04/28 PHP
利用phpExcel实现Excel数据的导入导出(全步骤详细解析)
2013/11/26 PHP
Drupal7连接多个数据库及常见问题解决
2014/03/02 PHP
PHP如何获取当前主机、域名、网址、路径、端口等参数
2017/06/09 PHP
php curl获取https页面内容,不直接输出返回结果的设置方法
2019/01/15 PHP
CodeIgniter框架实现的整合Smarty引擎DEMO示例
2019/03/28 PHP
RR vs IO BO3 第二场2.13
2021/03/10 DOTA
修复ie8&amp;chrome下window的resize事件多次执行
2011/10/20 Javascript
JavaScript事件处理器中的event参数使用介绍
2013/05/24 Javascript
js过滤特殊字符输入适合输入、粘贴、拖拽多种情况
2014/03/22 Javascript
深入浅析JavaScript中的scrollTop
2016/07/11 Javascript
JavaScript数据操作_浅谈原始值和引用值的操作本质
2016/08/23 Javascript
js 获取本地文件及目录的方法(推荐)
2016/11/10 Javascript
JS高阶函数原理与用法实例分析
2019/01/15 Javascript
详解js中let与var声明变量的区别
2020/04/05 Javascript
vue通信方式EventBus的实现代码详解
2019/06/10 Javascript
微信小程序wx.request拦截器使用详解
2019/07/09 Javascript
javascript移动端 电子书 翻页效果实现代码
2019/09/07 Javascript
JavaScript 面向对象基础简单示例
2019/10/02 Javascript
JavaScript中this的学习笔记及用法整理
2020/02/17 Javascript
python中map、any、all函数用法分析
2015/04/21 Python
TensorFlow深度学习之卷积神经网络CNN
2018/03/09 Python
基于python3 OpenCV3实现静态图片人脸识别
2018/05/25 Python
python 中xpath爬虫实例详解
2019/08/26 Python
python打包成so文件过程解析
2019/09/28 Python
python opencv实现图片缺陷检测(讲解直方图以及相关系数对比法)
2020/04/07 Python
css3实现动画的三种方式
2020/08/24 HTML / CSS
印度网上药店:1mg
2017/10/13 全球购物
荷兰度假屋租赁网站:Aan Zee
2020/02/28 全球购物
运动会广播稿60字
2014/01/15 职场文书
写求职信有什么意义
2014/02/17 职场文书
运输服务质量承诺书
2014/03/27 职场文书
个人合作协议书范本
2014/04/18 职场文书
庆六一文艺汇演活动方案
2014/08/26 职场文书
教师个人发展总结
2015/02/11 职场文书
PHP判断是否是json字符串
2021/04/01 PHP