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中的日期处理方法集锦
Jan 02 PHP
Discuz!5的PHP代码高亮显示插件(黑暗中的舞者更新)
Jan 29 PHP
攻克CakePHP系列一 连接MySQL数据库
Oct 22 PHP
php 操作excel文件的方法小结
Dec 31 PHP
PHP imagecreatefrombmp 从BMP文件或URL新建一图像
Jul 16 PHP
利用curl 多线程 模拟 并发的详解
Jun 14 PHP
php实现MD5加密16位(不要默认的32位)
Aug 12 PHP
Smarty模板学习笔记之Smarty简介
May 20 PHP
php数组冒泡排序算法实例
May 06 PHP
php使用escapeshellarg时中文被过滤的解决方法
Jul 10 PHP
PHP递归删除多维数组中的某个值
Apr 17 PHP
php 原生分页
Apr 01 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
新版mysql+apache+php Linux安装指南
2006/10/09 PHP
php中cookie的作用域
2008/03/27 PHP
PHP中$_SERVER的详细参数与说明
2008/07/29 PHP
php cout&amp;lt;&amp;lt;的一点看法
2010/01/24 PHP
PHP的mysqli_stat()函数讲解
2019/01/23 PHP
PHP面向对象程序设计重载(overloading)操作详解
2019/06/13 PHP
php中加密解密DES类的简单使用方法示例
2020/03/26 PHP
How to Auto Include a Javascript File
2007/02/02 Javascript
zTree插件之单选下拉菜单实例代码
2013/11/07 Javascript
JavaScript中的数组特性介绍
2014/12/30 Javascript
jquery.uploadify插件在chrome浏览器频繁崩溃解决方法
2015/03/01 Javascript
JavaScript的函数式编程基础指南
2016/03/19 Javascript
面包屑导航详解
2017/12/07 Javascript
javascript深拷贝、浅拷贝和循环引用深入理解
2018/05/27 Javascript
vue2.0获取鼠标位置的方法
2018/09/13 Javascript
解决vue-cli webpack打包后加载资源的路径问题
2018/09/25 Javascript
Layui tree 下拉菜单树的实例代码
2019/09/21 Javascript
[03:59]5分钟带你了解什么是DOTA2(第二期)
2017/02/07 DOTA
Python FTP操作类代码分享
2014/05/13 Python
pycharm 使用心得(九)解决No Python interpreter selected的问题
2014/06/06 Python
一个基于flask的web应用诞生 bootstrap框架美化(3)
2017/04/11 Python
python中的set实现不重复的排序原理
2018/01/24 Python
pycharm在调试python时执行其他语句的方法
2018/11/29 Python
解决PyCharm的Python.exe已经停止工作的问题
2018/11/29 Python
Python设计模式之简单工厂模式实例详解
2019/01/22 Python
python 处理数字,把大于上限的数字置零实现方法
2019/01/28 Python
python 实现两个线程交替执行
2020/05/02 Python
Python实现加密接口测试方法步骤详解
2020/06/05 Python
详解Flask前后端分离项目案例
2020/07/24 Python
css3编写浏览器背景渐变背景色的方法
2018/03/05 HTML / CSS
在校实习生求职信
2014/06/18 职场文书
小学三好学生事迹材料
2014/08/15 职场文书
2014年学校总务处工作总结
2014/12/08 职场文书
宾馆客房管理制度
2015/08/06 职场文书
导游词之鲁迅祖居
2019/10/17 职场文书
教你使用Ubuntu搭建DNS服务器
2022/09/23 Servers