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 相关文章推荐
推荐一篇入门级的Class文章
Mar 19 PHP
PHP计划任务、定时执行任务的实现代码
Apr 23 PHP
用穿越火线快速入门php面向对象
Feb 22 PHP
PHP数据集构建JSON格式及新数组的方法
Nov 07 PHP
解析php类的注册与自动加载
Jul 05 PHP
PHP开发工具ZendStudio下Xdebug工具使用说明详解
Nov 11 PHP
PHP模块memcached使用指南
Dec 08 PHP
php简单判断文本编码的方法
Jul 30 PHP
php 使用curl模拟登录人人(校内)网的简单实例
Jun 06 PHP
Codeigniter里的无刷新上传的实现代码
Apr 14 PHP
浅析PHP中的 inet_pton 网络函数
Dec 16 PHP
Git命令之分支详解
Mar 02 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/07 PHP
php中时间轴开发(刚刚、5分钟前、昨天10:23等)
2011/10/03 PHP
PHP 第二节 数据类型之数值型
2012/04/28 PHP
php实现网站留言板功能
2015/11/04 PHP
PHP基于单例模式实现的数据库操作基类
2016/01/15 PHP
ThinkPHP5+UEditor图片上传到阿里云对象存储OSS功能示例
2019/08/05 PHP
PHPStorm 2020.1 调试 Nodejs的多种方法详解
2020/09/17 NodeJs
JavaScript 计算当天是本年本月的第几周
2009/03/22 Javascript
JavaScript lastIndexOf方法入门实例(计算指定字符在字符串中最后一次出现的位置)
2014/10/17 Javascript
jQuery中ready事件用法实例
2015/01/19 Javascript
JavaScript时间转换处理函数
2015/04/14 Javascript
初步认识JavaScript函数库jQuery
2015/06/18 Javascript
javascript日期操作详解(脚本之家整理)
2015/09/05 Javascript
AngularJs  Using $location详解及示例代码
2016/09/02 Javascript
Vue.js学习示例分享
2017/02/05 Javascript
原生JS封装_new函数实现new关键字的功能
2018/08/12 Javascript
vue element table 表格请求后台排序的方法
2018/09/28 Javascript
Vue axios 将传递的json数据转为form data的例子
2019/10/29 Javascript
解决ant Design中Select设置initialValue时的大坑
2020/10/29 Javascript
使用python绘制人人网好友关系图示例
2014/04/01 Python
Python中获取对象信息的方法
2015/04/27 Python
python用for循环求和的方法总结
2019/07/08 Python
使用python图形模块turtle库绘制樱花、玫瑰、圣诞树代码实例
2020/03/16 Python
python 解决mysql where in 对列表(list,,array)问题
2020/06/06 Python
同程旅游英文网站:LY.com
2018/11/13 全球购物
实习心得体会
2014/01/02 职场文书
法学函授自我鉴定
2014/02/06 职场文书
《维生素c的故事》教学反思
2014/02/18 职场文书
初中教师业务学习材料
2014/05/12 职场文书
客运企业隐患排查工作方案
2014/06/06 职场文书
银行柜员求职自荐书
2014/06/18 职场文书
爱护公共设施的标语
2014/06/24 职场文书
自书遗嘱范文
2015/08/07 职场文书
咖啡厅里的创业计划书
2019/08/21 职场文书
创业计划书之家教中心
2019/09/25 职场文书
win10搭建配置ftp服务器的方法
2022/08/05 Servers