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 相关文章推荐
我的论坛源代码(七)
Oct 09 PHP
php 文件上传代码(限制jpg文件)
Jan 05 PHP
php统计文件大小,以GB、MB、KB、B输出
May 29 PHP
php中存储用户ID和密码到mysql数据库的方法
Feb 06 PHP
修改php.ini以达到屏蔽错误信息并记录日志
Jun 16 PHP
php基于base64解码图片与加密图片还原实例
Nov 03 PHP
php数组添加元素方法小结
Dec 20 PHP
php实现QQ空间获取当前用户的用户名并生成图片
Jul 25 PHP
php生成图片验证码的方法
Apr 15 PHP
php代码检查代理ip的有效性
Aug 19 PHP
PHP实现求两个字符串最长公共子串的方法示例
Nov 17 PHP
Laravel 5+ .env环境配置文件详解
Apr 06 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脚本的10个技巧(3)
2006/10/09 PHP
小文件php+SQLite存储方案
2010/09/04 PHP
PHP+mysql+ajax轻量级聊天室实现方法详解
2016/10/17 PHP
php数组指针操作详解
2017/02/14 PHP
Laravle eloquent 多对多模型关联实例详解
2017/11/22 PHP
js 利用className得到对象的实现代码
2011/11/15 Javascript
js四舍五入数学函数round使用实例
2014/05/09 Javascript
thinkjs之页面跳转同步异步操作
2017/02/05 Javascript
AngularJS 购物车全选/取消全选功能的实现方法
2017/08/14 Javascript
实时监控input框,实现输入框与下拉框联动的实例
2018/01/23 Javascript
详解Vue源码中一些util函数
2019/04/24 Javascript
浅谈JS中几种轻松处理'this'指向方式
2019/09/16 Javascript
JS前端面试必备——基本排序算法原理与实现方法详解【插入/选择/归并/冒泡/快速排序】
2020/02/24 Javascript
详解微信小程序轨迹回放实现及遇到的坑
2021/02/02 Javascript
[01:08]DOTA2次级职业联赛 - Wings 战队宣传片
2014/12/01 DOTA
[50:54]完美世界DOTA2联赛 GXR vs IO 第三场 11.07
2020/11/10 DOTA
Python对象类型及其运算方法(详解)
2017/07/05 Python
python实现决策树分类
2018/08/30 Python
python实现批量注册网站用户的示例
2019/02/22 Python
matlab灰度图像调整及imadjust函数的用法详解
2020/02/27 Python
AUC计算方法与Python实现代码
2020/02/28 Python
Django Serializer HiddenField隐藏字段实例
2020/03/31 Python
python将数据插入数据库的代码分享
2020/08/16 Python
pycharm使用技巧之自动调整代码格式总结
2020/11/04 Python
BLACKMORES澳洲官网:澳大利亚排名第一的保健品牌
2018/09/27 全球购物
英国顶级水晶珠宝零售商之一:Tresor Paris
2019/04/27 全球购物
自主招生自荐书
2013/11/29 职场文书
《蜗牛》教学反思
2014/02/18 职场文书
安全月宣传标语
2014/10/07 职场文书
一般基层干部群众路线教育实践活动个人对照检查材料
2014/11/04 职场文书
2014年前台文员工作总结
2014/12/08 职场文书
优秀教师推荐材料
2014/12/16 职场文书
劳动保障个人工作总结
2015/03/04 职场文书
2015年度个人思想工作总结
2015/04/08 职场文书
业务内勤岗位职责
2015/04/13 职场文书
员工给公司的建议书
2019/06/24 职场文书