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+SqlServer实现分页显示
Oct 09 PHP
PHP生成HTML静态页面实例代码
Aug 31 PHP
通过具体程序来理解PHP里面的抽象类
Jan 28 PHP
PHP字符串函数系列之nl2br(),在字符串中的每个新行 (\n) 之前插入 HTML 换行符br
Nov 10 PHP
php中函数前加&amp;符号的作用分解
Jul 08 PHP
php数组随机排序实现方法
Jun 13 PHP
PHP直接修改表内容DataGrid功能实现代码
Sep 24 PHP
php中关于长度计算容易混淆的问题分析
May 27 PHP
Ajax提交表单时验证码自动验证 php后端验证码检测
Jul 20 PHP
PHP编程实现阳历转换为阴历的方法实例
Aug 08 PHP
PHP 进度条函数的简单实例
Sep 19 PHP
PHP dirname(__FILE__)原理及用法解析
Oct 28 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
ThinkPHP、ZF2、Yaf、Laravel框架路由大比拼
2015/03/25 PHP
PHP中加速、缓存扩展的区别和作用详解(eAccelerator、memcached、xcache、APC )
2016/07/09 PHP
php-msf源码详解
2017/12/25 PHP
PHP创建XML的方法示例【基于DOMDocument类及SimpleXMLElement类】
2019/09/10 PHP
把html页面的部分内容保存成新的html文件的jquery代码
2009/11/12 Javascript
使用jQuery的将桌面应用程序引入浏览器
2010/11/19 Javascript
解析DHTML,JavaScript,DOM,BOM以及WEB标准的描述
2013/06/19 Javascript
简约JS日历控件 实例代码
2013/07/12 Javascript
如何从jQuery的ajax请求中删除X-Requested-With
2013/12/11 Javascript
jQuery选择器源码解读(八):addCombinator函数
2015/03/31 Javascript
javascript实现日期按月份加减
2015/05/15 Javascript
js ajaxfileupload.js上传报错的解决方法
2016/05/05 Javascript
NodeJS实现微信公众号关注后自动回复功能
2017/05/31 NodeJs
基于element-ui的rules中正则表达式
2018/09/04 Javascript
Vue CLI3.0中使用jQuery和Bootstrap的方法
2019/02/28 jQuery
NProgress显示顶部进度条效果及使用详解
2019/09/21 Javascript
Python基于有道实现英汉字典功能
2015/07/25 Python
Python ldap实现登录实例代码
2016/09/30 Python
Python实现的文本简单可逆加密算法示例
2017/05/18 Python
python2 与python3的print区别小结
2018/01/16 Python
Python sorted函数详解(高级篇)
2018/09/18 Python
Python实现根据日期获取当天凌晨时间戳的方法示例
2019/04/09 Python
python交易记录链的实现过程详解
2019/07/03 Python
Django中celery执行任务结果的保存方法
2019/07/12 Python
python 实现一个反向单位矩阵示例
2019/11/29 Python
Python获取对象属性的几种方式小结
2020/03/12 Python
Python3 mmap内存映射文件示例解析
2020/03/23 Python
python3 通过 pybind11 使用Eigen加速代码的步骤详解
2020/12/07 Python
美国一家专业的太阳镜网上零售商:Solstice太阳镜
2016/07/25 全球购物
加拿大建筑和装修专家:Reno-Depot
2017/12/21 全球购物
正隆泰信息技术有限公司上机题
2012/06/14 面试题
儿科护理实习自我鉴定
2013/09/19 职场文书
财务情况说明书范文
2014/05/06 职场文书
初中毕业生感言
2015/07/31 职场文书
2016年“5.12”护士节致辞
2015/07/31 职场文书
Python+tkinter实现高清图片保存
2022/03/13 Python