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中数据的批量导入(csv文件)
Oct 09 PHP
PHP中获取变量的变量名的一段代码的bug分析
Jul 07 PHP
php入门学习知识点一 PHP与MYSql连接与查询
Jul 14 PHP
深入php处理整数函数的详解
Jun 09 PHP
thinkphp3查询mssql数据库乱码解决方法分享
Feb 11 PHP
php实现文件编码批量转换
Mar 10 PHP
php中cookie的使用方法
Mar 29 PHP
PHP使用header()输出图片缓存实例
Dec 09 PHP
php命令行(cli)下执行PHP脚本文件的相对路径的问题解决方法
May 25 PHP
PHP针对多用户实现更换头像功能
Sep 04 PHP
laravel 解决groupBy时出现的错误 isn't in Group By问题
Oct 17 PHP
PHP pthreads v3使用中的一些坑和注意点分析
Feb 21 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
强烈声明: 不要使用(include/require)_once
2013/06/06 PHP
PHP URL路由类实例
2013/11/12 PHP
php日志函数error_log用法实例分析
2019/09/23 PHP
JavaScript 函数replace深入了解
2013/03/14 Javascript
关于JavaScript中name的意义冲突示例介绍
2014/05/29 Javascript
浅谈轻量级js模板引擎simplite
2015/02/13 Javascript
JS获得图片alt信息的方法
2015/04/01 Javascript
基于Node.js的强大爬虫 能直接发布抓取的文章哦
2016/01/10 Javascript
jQuery右下角悬浮广告实例
2016/10/17 Javascript
微信小程序 实战实例开发流程详细介绍
2017/01/05 Javascript
使用JavaScript实现点击循环切换图片效果
2017/09/03 Javascript
JS常见错误(Error)及处理方案详解
2020/07/02 Javascript
[00:52]玛尔斯技能全介绍
2019/03/06 DOTA
Django返回json数据用法示例
2016/09/18 Python
详解Python多线程
2016/11/14 Python
Django日志模块logging的配置详解
2017/02/14 Python
python使用opencv进行人脸识别
2017/04/07 Python
python邮件发送smtplib使用详解
2020/06/16 Python
python遍历小写英文字母的方法
2019/01/02 Python
python 处理telnet返回的More,以及get想要的那个参数方法
2019/02/14 Python
Python中的self用法详解
2019/08/06 Python
Python的pygame安装教程详解
2020/02/10 Python
Python3批量创建Crowd用户并分配组
2020/05/20 Python
使用phonegap播放音频的实现方法
2017/03/31 HTML / CSS
世界领先的26岁以下学生和青少年旅行预订网站:StudentUniverse
2018/07/01 全球购物
美国最大的在线水培用品商店:GrowersHouse.com
2018/08/14 全球购物
教师自荐信范文
2013/12/09 职场文书
2014年情人节活动方案
2014/02/16 职场文书
优秀教师演讲稿
2014/05/06 职场文书
体育之星事迹材料
2014/05/11 职场文书
企业形象策划方案
2014/05/29 职场文书
2014报到证办理个人委托书
2014/10/08 职场文书
农民工工资承诺书大全
2015/05/04 职场文书
第一节英语课开场白
2015/06/01 职场文书
金榜题名主持词
2015/07/02 职场文书
导游词之张家口
2019/12/13 职场文书