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中的正规表达式(一)
Oct 09 PHP
PHP实现域名whois查询的代码(数据源万网、新网)
Feb 22 PHP
php读取远程gzip压缩网页的方法
Dec 29 PHP
php中get_defined_constants函数用法实例分析
May 12 PHP
详解WordPress中用于更新和获取用户选项数据的PHP函数
Mar 08 PHP
PHP MYSQL简易交互式站点开发
Dec 27 PHP
[原创]php实现数组按拼音顺序排序的方法
May 03 PHP
PHP实现二维数组中的查找算法小结
Jun 09 PHP
PHP设计模式之模板方法模式实例浅析
Dec 20 PHP
PHP 多进程与信号中断实现多任务常驻内存管理实例方法
Oct 04 PHP
PHP保存Base64图片base64_decode的问题整理
Nov 04 PHP
php自动加载代码实例详解
Feb 26 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函数rtrim()使用中的怪异现象分析
2017/02/24 PHP
php 截取中英文混合字符串的方法
2018/05/31 PHP
JavaScript(js)设置默认输入焦点(focus)
2012/12/28 Javascript
jQuery插件开发基础简单介绍
2013/01/07 Javascript
jquery获取特定name所有选中的checkbox,支持IE9标准模式
2013/03/18 Javascript
页面右下角弹出提示框示例代码js版
2013/08/02 Javascript
查看大图功能代码jquery版
2013/11/05 Javascript
addEventListener()第三个参数useCapture (Boolean)详细解析
2013/11/07 Javascript
jquery自动切换tabs选项卡的具体实现
2013/12/24 Javascript
javascript 用函数语句和表达式定义函数的区别详解
2014/01/06 Javascript
JS中判断null、undefined与NaN的方法
2014/03/26 Javascript
JavaScript里四舍五入函数round用法实例
2015/04/06 Javascript
JS三级可折叠菜单实现方法
2016/02/29 Javascript
探索Vue.js component内容实现
2016/11/03 Javascript
原生js实现可爱糖果数字时间特效
2016/12/30 Javascript
聊聊JavaScript如何实现继承及特点
2017/04/07 Javascript
微信小程序商城项目之商品属性分类(4)
2017/04/17 Javascript
JavaScript高阶函数_动力节点Java学院整理
2017/06/28 Javascript
浅谈Node.js之异步流控制
2017/10/25 Javascript
使用百度地图实现地图网格的示例
2018/02/06 Javascript
Vue 中的受控与非受控组件的实现
2018/12/17 Javascript
jQuery实现移动端笔触canvas电子签名
2020/05/21 jQuery
vue v-on:click传递动态参数的步骤
2020/09/11 Javascript
PyQt5利用QPainter绘制各种图形的实例
2017/10/19 Python
Python实现爬虫从网络上下载文档的实例代码
2018/06/13 Python
python爬取淘宝商品销量信息
2018/11/16 Python
html5 div布局与table布局详解
2016/11/16 HTML / CSS
Html5 Canvas动画基础碰撞检测的实现
2018/12/06 HTML / CSS
介绍一下grep命令的使用
2012/06/28 面试题
妇科医生自荐信
2013/11/05 职场文书
班级安全教育实施方案
2014/02/23 职场文书
大课间活动实施方案
2014/03/06 职场文书
房屋买卖授权委托书
2014/09/27 职场文书
乡镇群众路线教育实践活动整改措施
2014/10/04 职场文书
毕业论文致谢词
2015/05/14 职场文书
Nginx访问日志及错误日志参数说明
2021/03/31 Servers