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

示例见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. java使用类似ini文件IniProperties的类
  2. c++类模板(c++细节篇十一)
  3. redis命令-key操作
  4. blob的真实地址怎么获得_使用Python抓取m3u8加密视频 续:获得index.m3u8 地址
  5. Eclipse 4.9 正式发布,支持 Java 11
  6. Visio图形自动编号
  7. [Vue.js] Vuex的使用
  8. python装饰器作用噜咕_浅谈python中的装饰器
  9. 揭开阿里P2P面纱:大数据是泡泡
  10. 蛋疼菊紧的Outlook 2013
  11. tushare复权数据使用
  12. excel表格斜线_WORD圆角表格,如此惊艳
  13. Git从远程仓库取代码
  14. Chrome 扩展程序——LastPass:密码管理工具
  15. 联想服务器重装系统只有光标,联想bios重装系统图文教程
  16. 使用Excel数据分析工具进行多元回归分析
  17. Java 中的 getResource 方法
  18. myeclipse加大内存
  19. 初步认识Internet
  20. 《成长是一件孤独的事》周国平 书摘

热门文章

  1. JavaScript学习资源网站
  2. 微软服务器系统安装显卡驱动,显卡驱动问题
  3. 记在CSDN第一次留下印记
  4. burpsuite2020.8下载安装
  5. 【51nod】【单调栈】扔盘子
  6. Three.js之新手初学——构建魔方
  7. W806的编译环境准备
  8. 华硕笔记本UEFI 设置U盘启动教程
  9. 首届“智慧岱岳,共创未来”高层次人才创新创业大赛等你来
  10. 图像分割将label和得到的mask画入原图