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 相关文章推荐
Search Engine Friendly的URL设计
Oct 09 PHP
PHP学习笔记 用户注册模块用户类以及验证码类
Sep 20 PHP
eAccelerator的安装与使用详解
Jun 13 PHP
完美解决令人抓狂的zend studio 7代码提示(content Assist)速度慢的问题
Jun 20 PHP
qq登录,新浪微博登录接口申请过程中遇到的问题
Jul 22 PHP
thinkphp文件处理类Dir.class.php的用法分析
Dec 08 PHP
php简单实现屏蔽指定ip段用户的访问
Apr 29 PHP
php编写批量生成不重复的卡号密码代码
May 14 PHP
php简单判断文本编码的方法
Jul 30 PHP
php微信开发之自定义菜单完整流程
Oct 08 PHP
PHP实现在数据库百万条数据中随机获取20条记录的方法
Apr 19 PHP
laravel添加角色和模糊搜索功能的实现代码
Jun 22 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
从网上搜到的phpwind 0day的代码
2006/12/07 PHP
PHP和MYSQL实现分页导航思路详解
2017/04/11 PHP
HTML TO JavaScript 转换
2006/06/26 Javascript
不用ajax实现点击文字即可编辑的方法
2007/12/16 Javascript
GWT中复制到剪贴板 js+flash实现复制 兼容性比较好
2010/03/07 Javascript
再谈javascript图片预加载技术(详细演示)
2011/03/12 Javascript
基于datagrid框架的查询
2013/04/08 Javascript
Angular.js如何从PHP读取后台数据
2016/03/24 Javascript
JavaScript中匿名函数的用法及优缺点详解
2016/06/01 Javascript
js动态获取子复选项并设计全选及提交的实现方法
2016/06/24 Javascript
浅谈js中调用函数时加不加括号的问题
2016/07/28 Javascript
极力推荐10个短小实用的JavaScript代码段
2016/08/03 Javascript
基于BootStrap的文本编辑器组件Summernote
2017/10/27 Javascript
vue 实现剪裁图片并上传服务器功能
2018/03/01 Javascript
基于vue中对鼠标划过事件的处理方式详解
2018/08/22 Javascript
layui实现数据表格自定义数据项
2019/10/26 Javascript
Vue组件模板的几种书写形式(3种)
2020/02/19 Javascript
es6函数之严格模式用法实例分析
2020/03/17 Javascript
vue select 获取value和lable操作
2020/08/28 Javascript
[01:51]开启你的城市传奇 完美世界城市挑战赛开始报名
2018/10/09 DOTA
Python删除windows垃圾文件的方法
2015/07/14 Python
Python中的 is 和 == 以及字符串驻留机制详解
2019/06/28 Python
Django Rest framework认证组件详细用法
2019/07/25 Python
django-crontab 定时执行任务方法的实现
2019/09/06 Python
python 常见的排序算法实现汇总
2020/08/21 Python
Python脚本实现Zabbix多行日志监控过程解析
2020/08/26 Python
python如何爬取动态网站
2020/09/09 Python
美国领先的医疗警报服务:Philips Lifeline
2018/03/12 全球购物
Belvilla德国:在线预订度假屋
2018/04/10 全球购物
法律专业学生的自我评价
2014/02/07 职场文书
机关道德讲堂实施方案
2014/03/15 职场文书
基层党建工作宣传标语
2014/06/24 职场文书
会员活动策划方案
2014/08/19 职场文书
2014年党员自我评议(5篇)
2014/09/12 职场文书
2015年幼儿园元旦游艺活动策划书
2014/12/09 职场文书
2019新员工试用期转正申请书3篇
2019/08/13 职场文书