该代码可以实现身份证的查询,准确性如何就不得而知了,还可以判断是否是一个正确(指逻辑正确)的号码。

示例见http://www.ickd.cn/sfz/

<?php
function IDCheck($e){$arrVerifyCode = explode(",","1,0,x,9,8,7,6,5,4,3,2");$Wi = explode(",","7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2");$Checker = explode(",","1,9,8,7,6,5,4,3,2,1,1");$len=strlen($e);if($len!==15 && $len!==18)return false;if($len == 18){$ai = substr($e, 0, 17);}elseIf($len == 15){$ai = $e;$ai = substr($ai, 0,6) . "19" . substr($ai, 6, 9);}//If(Not IsNumeric($ai))return false;$strYear = substr($ai, 7, 4);$strMonth = substr($ai, 11, 2);$strDay = substr($ai, 13, 2);if(checkdate($strMonth,$strDay,$strYear ))return false;for($i = 0;$i<17;$i++){    $TotalmulAiWi += substr($ai, $i, 1)*$Wi[$i];}$modValue = $TotalmulAiWi % 11;$strVerifyCode = $arrVerifyCode[$modValue];$ai .= $strVerifyCode;
//  If(strlen($e) == 18 && $e <> $ai)return false;return $ai;
}function getRegion($id){$info=file('./info.txt');$regions=array();foreach($info as $line){list($region_code,$addr)=explode('|',$line);$regions[$region_code]=trim($addr);}$adr=substr($id,0,6);if($adr{5}=='0'){return '身份证号码错误';}$prov=$city=$county='';$prov=$regions[substr($id,0,2).'0000'];$city=$regions[substr($id,0,4).'00'];$county=$regions[substr($id,0,6)];if(!$city || !$prov || !$county){return '身份证号码错误';}if($city==$prov){return sprintf('%s-%s',$prov,$county);}else{return sprintf('%s-%s-%s',$prov,$city,$county);}
}
function  getGender($idc){$idclen=strlen($idc);if(15 == $idclen){if(0 <> $idc[$idclen-1]%2){return "男";}else{return "女";}}elseif(18 == $idclen){if(0 <> $idc[$idclen-2]%2){return "男";}else{return "女";}}
}
function  getBirthday($idc){$idclen=strlen($idc);if(15 == $idclen){preg_match('/^\d{6}(\d{2})(\d{2})(\d{2})\d{3}$/',$idc,$a);$y='19'.$a[1];$m=$a[2];$d=$a[3];}elseif(18 == $idclen){preg_match('/^\d{6}(\d{4})(\d{2})(\d{2})\d{3}[\dxX]$/',$idc,$a);$y=$a[1];$m=$a[2];$d=$a[3];}else{$y=$m=$d=0;}return sprintf('%s年%s月%s日',$y,$m,$d);
}
function getIDInfo($id){$idc=IDCheck($id);if($idc){$json=array('InputID'=>$id,'OutputID'=>$idc,'Birthday'=>getBirthday($idc),'Gender'=>getGender($idc),'Address'=>getRegion($idc),'Error'=>'','Warning'=>'');if($idc!==$id){$json['Warning']='ID错误';}}else{$json=array('InputID'=>$id,'OutputID'=>'','Birthday'=>'','Gender'=>'','Address'=>'','Error'=>'ID错误','Warning'=>'');}return $json;
}$id=strtolower(trim($_GET['id']));if(!preg_match('/^\d{15}(\d{2}[\dx]?)?$/',$id)){$json=array('InputID'=>$id,'OutputID'=>'','Birthday'=>'','Gender'=>'','Address'=>'','Error'=>'ID错误','Warning'=>'');}else{$json=getIDInfo($id);}echo json_encode($json);
?>

PHP身份证查询代码相关推荐

  1. 玩转百度即用API(2)——身份证查询

    2019独角兽企业重金招聘Python工程师标准>>> 第二个即用API,身份证查询 示例代码: #-*- coding: utf-8 -*- #version:0.1 #note: ...

  2. 基于java GUI编写的身份证查询小工具

    由于课程设计的缘故,提前做了个身份证查询小工具. 技术含量并不高,"出生日期.性别.年龄"都是根据身份证的算法算出来的,身份证号码18位数对应不同的含义,大家百度查一下即可. &q ...

  3. 八、双色球彩票,股票,快递,身份证查询

    这一章将介绍最后几个查询功能.过年前这段时间打算好好熟悉一下手机商城这一块,将我的小魔方童装重新调整一下它的手机显示界面风格. 效果图 4.6:双色球开奖查看 4.7:股票查看 4.9:身份证查询 4 ...

  4. python手机版代码-Python手机号码归属地查询代码

    简单的一个例子,是以前用Dephi写的,前不久刚实现了一个在Python中使用Delphi控件来编写界面程序,于是趁热写一个类似的的查询方案. 本实例是通过www.ip138.com这个网站来查询的, ...

  5. vc连接mysql 查询_vc连接数据库中查询代码如何写呀 急急急!!!!!!

    我的程序有增加删除修改就是没有查询(求查询代码)voidCSQLView::OnAdd(){CStuDlgdlg;if(dlg.DoModal()==IDOK){m_pSet->AddNew() ...

  6. python天气查询_Python学习笔记——天气查询代码

    天气查询代码1 # 此程序无法运行,因为中国天气网的api接口被关闭了 import urllib.request import json import pickle #建立城市字典 pickle_f ...

  7. oracle回滚断查询,Oracle回滚段使用查询代码详解

    大批量执行DML语句造成回滚段大量占用,又回退操作,如何直观查询数据回滚情况? 单机环境 查询回滚执行进度 sql;"> select /*+ rule */s.sid,r.name ...

  8. 量化股票查询代码是什么?

    量化股票查询代码是什么?接下来用一些代码来分析一下,如下: 做空95:HHV((HIGH+LOW+OPEN+2*CLOSE)/5+H-L,5),COLORBLUE;做空68: HHV((HIGH-+L ...

  9. PHP 万能查询代码

    小项目中存在很多省市区加模糊查询: 以下THINKPHP + JS 构成万能查询代码:方便快捷. 前端: <select id="s_province" name=" ...

最新文章

  1. 《I'm a Mac:雄狮训练手册》——第1章 开机 1.1 “咚”声的作用
  2. 校招c语言面试题目及答案,C/C++学习之路(一)校招后端面试题及答案(作者回忆版)...
  3. 开发日记-20190601 关键词 读书笔记《鸟哥的Linux私房菜-基础学习篇》
  4. 一文看尽9篇语义分割最新论文(GPSNet/Graph-FCN/HMANet等)
  5. ux设计师怎样找同类产品_没有预算? 别找借口。 便宜的UX上的UX 2:让我们开始构建。...
  6. SqlHelper操纵数据库工具类
  7. Facebook的秘密服务器,竟藏着互联网的军事根源?
  8. MySQL Workbench 的安全设置
  9. ios 图片逆时针旋转_iOS 图片旋转方法实例代码
  10. Unity UGUI 流光特效
  11. 计算机桌面空白图标如何删除,我的电脑里有一个空白图标怎么删除
  12. python colorbar刻度_python-如何添加Matplotlib Colorbar刻度
  13. Android4.4添加系统服务(aidl接口服务)
  14. 录屏软件哪个好?快来试试这几款吧!
  15. html调用打印机,[Javascript]网页调用打印机
  16. 问题1053:素数回文
  17. 16进制数组和ASK码字符之间的转换
  18. 字符流转字节流的方法。
  19. Linux 监听进程状态
  20. 基于直流潮流法的电力系统潮流计算程序设计

热门文章

  1. sntp服务器位置,sntp的服务器地址
  2. 关于手机上显示网页自适应大小viewport参数设置
  3. 3. 大数据存储与管理
  4. 2.3.6nbsp;游击战的基本原则
  5. C++文本文件,二进制文件,write(),read(),map容器,seekg(),seekp(),tellg(),tellp()函数
  6. 云计算机下erp的发展,物联网、云计算对于ERP行业未来发展影响及趋势【转】
  7. 某大奖赛有n个选手参赛,m个评委为依次参赛的选手评判打分
  8. pikachu Unsafe Filedownload 不安全的文件下载 (皮卡丘漏洞平台通关系列)
  9. 【三子棋保姆级教学】
  10. 短视频APP是如何开启你的美好生活的?