PHP身份证查询代码
该代码可以实现身份证的查询,准确性如何就不得而知了,还可以判断是否是一个正确(指逻辑正确)的号码。
示例见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身份证查询代码相关推荐
- 玩转百度即用API(2)——身份证查询
2019独角兽企业重金招聘Python工程师标准>>> 第二个即用API,身份证查询 示例代码: #-*- coding: utf-8 -*- #version:0.1 #note: ...
- 基于java GUI编写的身份证查询小工具
由于课程设计的缘故,提前做了个身份证查询小工具. 技术含量并不高,"出生日期.性别.年龄"都是根据身份证的算法算出来的,身份证号码18位数对应不同的含义,大家百度查一下即可. &q ...
- 八、双色球彩票,股票,快递,身份证查询
这一章将介绍最后几个查询功能.过年前这段时间打算好好熟悉一下手机商城这一块,将我的小魔方童装重新调整一下它的手机显示界面风格. 效果图 4.6:双色球开奖查看 4.7:股票查看 4.9:身份证查询 4 ...
- python手机版代码-Python手机号码归属地查询代码
简单的一个例子,是以前用Dephi写的,前不久刚实现了一个在Python中使用Delphi控件来编写界面程序,于是趁热写一个类似的的查询方案. 本实例是通过www.ip138.com这个网站来查询的, ...
- vc连接mysql 查询_vc连接数据库中查询代码如何写呀 急急急!!!!!!
我的程序有增加删除修改就是没有查询(求查询代码)voidCSQLView::OnAdd(){CStuDlgdlg;if(dlg.DoModal()==IDOK){m_pSet->AddNew() ...
- python天气查询_Python学习笔记——天气查询代码
天气查询代码1 # 此程序无法运行,因为中国天气网的api接口被关闭了 import urllib.request import json import pickle #建立城市字典 pickle_f ...
- oracle回滚断查询,Oracle回滚段使用查询代码详解
大批量执行DML语句造成回滚段大量占用,又回退操作,如何直观查询数据回滚情况? 单机环境 查询回滚执行进度 sql;"> select /*+ rule */s.sid,r.name ...
- 量化股票查询代码是什么?
量化股票查询代码是什么?接下来用一些代码来分析一下,如下: 做空95:HHV((HIGH+LOW+OPEN+2*CLOSE)/5+H-L,5),COLORBLUE;做空68: HHV((HIGH-+L ...
- PHP 万能查询代码
小项目中存在很多省市区加模糊查询: 以下THINKPHP + JS 构成万能查询代码:方便快捷. 前端: <select id="s_province" name=" ...
最新文章
- 《I'm a Mac:雄狮训练手册》——第1章 开机 1.1 “咚”声的作用
- 校招c语言面试题目及答案,C/C++学习之路(一)校招后端面试题及答案(作者回忆版)...
- 开发日记-20190601 关键词 读书笔记《鸟哥的Linux私房菜-基础学习篇》
- 一文看尽9篇语义分割最新论文(GPSNet/Graph-FCN/HMANet等)
- ux设计师怎样找同类产品_没有预算? 别找借口。 便宜的UX上的UX 2:让我们开始构建。...
- SqlHelper操纵数据库工具类
- Facebook的秘密服务器,竟藏着互联网的军事根源?
- MySQL Workbench 的安全设置
- ios 图片逆时针旋转_iOS 图片旋转方法实例代码
- Unity UGUI 流光特效
- 计算机桌面空白图标如何删除,我的电脑里有一个空白图标怎么删除
- python colorbar刻度_python-如何添加Matplotlib Colorbar刻度
- Android4.4添加系统服务(aidl接口服务)
- 录屏软件哪个好?快来试试这几款吧!
- html调用打印机,[Javascript]网页调用打印机
- 问题1053:素数回文
- 16进制数组和ASK码字符之间的转换
- 字符流转字节流的方法。
- Linux 监听进程状态
- 基于直流潮流法的电力系统潮流计算程序设计
热门文章
- sntp服务器位置,sntp的服务器地址
- 关于手机上显示网页自适应大小viewport参数设置
- 3. 大数据存储与管理
- 2.3.6nbsp;游击战的基本原则
- C++文本文件,二进制文件,write(),read(),map容器,seekg(),seekp(),tellg(),tellp()函数
- 云计算机下erp的发展,物联网、云计算对于ERP行业未来发展影响及趋势【转】
- 某大奖赛有n个选手参赛,m个评委为依次参赛的选手评判打分
- pikachu Unsafe Filedownload 不安全的文件下载 (皮卡丘漏洞平台通关系列)
- 【三子棋保姆级教学】
- 短视频APP是如何开启你的美好生活的?