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
Dec 14 PHP
php实现批量下载百度云盘文件例子分享
Apr 10 PHP
PHP中file_get_contents高?用法实例
Sep 24 PHP
9个实用的PHP代码片段分享
Jan 22 PHP
PHP实现动态web服务器方法
Jul 29 PHP
PHP时间类完整实例(非常实用)
Dec 25 PHP
PHP 类与构造函数解析
Feb 06 PHP
PHP + plupload.js实现多图上传并显示进度条加删除实例代码
Mar 06 PHP
利用php的ob缓存机制实现页面静态化方法
Jul 09 PHP
php实现获取农历(阴历)、节日、节气的类与用法示例
Nov 20 PHP
laravel返回统一格式错误码问题
Nov 04 PHP
php设计模式之正面模式实例分析【星际争霸游戏案例】
Mar 24 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
初学者入门:细述PHP4的核心Zend
2006/09/05 PHP
php查询mysql大量数据造成内存不足的解决方法
2015/03/04 PHP
PHPStrom中实用的功能和快捷键大全
2015/09/23 PHP
解决ThinkPHP下使用上传插件Uploadify浏览器firefox报302错误的方法
2015/12/18 PHP
PHP中字符串长度的截取用法示例
2017/01/12 PHP
PHP实现对数组分页处理实例详解
2017/02/07 PHP
PHP迭代器接口Iterator用法分析
2017/12/28 PHP
PDO::query讲解
2019/01/29 PHP
PHP实现微信提现功能(微信商城)
2019/11/21 PHP
基于PHP+mysql实现新闻发布系统的开发
2020/08/06 PHP
解析使用JS 清空File控件的路径值
2013/07/08 Javascript
jquery中的过滤操作详细解析
2013/12/02 Javascript
js仿百度贴吧验证码特效实例代码
2014/01/16 Javascript
jQuery实现公告新闻自动滚屏效果实例代码
2016/07/14 Javascript
利用JavaScript判断浏览器类型及版本
2016/08/23 Javascript
javascript 动态样式添加的简单实现
2016/10/11 Javascript
Angular2学习笔记——详解NgModule模块
2016/12/02 Javascript
简单实现js无缝滚动效果
2017/02/05 Javascript
JS中touchstart事件与click事件冲突的解决方法
2018/03/12 Javascript
详解JS函数stack size计算方法
2018/06/18 Javascript
python有证书的加密解密实现方法
2014/11/19 Python
Python Tkinter 简单登录界面的实现
2019/06/14 Python
pytorch实现focal loss的两种方式小结
2020/01/02 Python
浅谈pytorch、cuda、python的版本对齐问题
2020/01/15 Python
Python格式化输出--%s,%d,%f的代码解析
2020/04/29 Python
Win10环境中如何实现python2和python3并存
2020/07/20 Python
Python使用正则表达式实现爬虫数据抽取
2020/08/17 Python
安装Anaconda3及使用Jupyter的方法
2020/10/27 Python
python爬虫泛滥的解决方法详解
2020/11/25 Python
解决pycharm导入numpy包的和使用时报错:RuntimeError: The current Numpy installation (‘D:\\python3.6\\lib\\site-packa的问题
2020/12/08 Python
日本最佳原创设计品牌:Felissimo(芬理希梦)
2019/03/19 全球购物
营业员实习自我鉴定
2013/12/07 职场文书
课内比教学心得体会
2014/09/09 职场文书
2014会计年终工作总结
2014/12/20 职场文书
公司档案管理制度
2015/08/05 职场文书
python图片灰度化处理的几种方法
2021/06/23 Python