导航:首页 > 编程语言 > php身份证查询

php身份证查询

发布时间:2022-08-02 04:33:13

㈠ 用php可不可以写出根据身份证查询到人的姓名!

一,这个涉及到个人隐私,财产安全,一般不可能让你查到。只有公安局,其它国家部门可以;
二,顺便说下身份证的编排方法:前6位为行政区划分代码,第7位至14位为出生日期码,第15位至17位为顺序码,第18位为校验码。

㈡ thinkphp根据身份证怎么获取所在地区

方法很多,这里举出两种

  1. 通过一些平台接口进行查询,例:有道身份证查询这个(貌似封了),可以自行网络下

  2. 自建数据库查询,原理:身份证号码的前6位是用来做地区区别码的,所以只要找到各个地区的区别码,用正则匹配就可以知道身份证所在地区了

㈢ php 身份证 正则 检测是否有效怎么写

你的正则表达式的规则错了。。当然不能执行啦
http://blog.sina.com.cn/s/blog_461c24d50100dtnz.html
这是规则。如果你只是拿来主义,就无视吧。
代码长篇大论,是对你负责;说真的,网络没几个愿意自己写那么多字的人。我第二程序是自己写的,试验过了。可以自动把身份证升级到18位,然后验证。
正则表达式其实是来自数学的概念,后来加入了编程语言。正则表达式验证身份证简单,但是有缺点,你的要求是:验证出身年月日,很可惜,正则没办法验证的太完善。也就是说只要符合规则就是正确(比如19940939之类的出生年月。。。),所以写程序就是为了完善它。话说多了= =不采纳也没办法。我自认为我比楼上的好多了。

<?php
$s15="/^[0-9]{15}$/";
//15位正则表达式
$s18="/^[0-9]{6}[1]{1}[9]{1}[0-9]{2}[0-1]{1}[0-9]{1}[0-3]{1}[0-9]{1}[0-9]{3}[0-9X]{1}$/";
//18位正则表达式

$sid="18位或者15位身份证";

if(preg_match($s15,$sid) or preg_match($s18,$sid))
//如果满足这两个条件的其中一个,输出echo
echo 'ok';
else
echo 'no';
?>
简单不好用,我花了一个小时写了一个15位转18位然后自动验证的函数:

<?php
function check($sid)
{
if(strlen($sid)== 15)
//如果是15身份证,进入自动转换程序,把15位升级到18位
{
$wi=array('7','9','10','5','8','4','2','1','6','3','7','9','10','5','8','4','2','1');
$sid=substr_replace($sid,19,6,0);
$count=array();
for($i=0;$i<18;++$i)
{
@$count[$i]=$sid[$i]*$wi[$i];
}
$sum=array_sum($count)%11;
$zuihou=array('1','0','X','9','8','7','6','5','4','3','2');
$sid=substr_replace($sid,$zuihou[$sum],17,0);
//这个sid是18位的。= = 不信你拿自己的身份证(15位)放过来试验,肯定没错。
}
$wi18=array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2);
$sum2=array();
for($j=0;$j<17;$j++)
{
$sum2[$j]=$sid[$j]*$wi18[$j];
}
$sum2=array_sum($sum2)%11;
$yz=array('1','0','X','9','8','7','6','5','4','3','2');
if($yz[$sum2] == $sid[17])
//如果最后一位和验证号一样,则返回真
return true;
else
return false;
}
$sid="18位或者15位身份证";
if(check($sid))
echo '是正确的身份证';
else
echo '身份证不正确';
?>

㈣ 求助,关于输入身份证号码获得生日和性别的PHP函数

自定义一个函数
删除身份证后四位
然后再取出最后八位数就是生日了

㈤ php身份证验证有什么错

<?php// 计算身份证校验码,根据国家标准GB 11643-1999 function idcard_verify_number($idcard_base){ if (strlen($idcard_base) != 17){ return false; } // 加权因子 $factor = array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2); // 校验码对应值 $verify_number_list = array(’1’, ’0’, ’X’, ’9’, ’8’, ’7’, ’6’, ’5’, ’4’, ’3’, ’2’); $checksum = 0; for ($i = 0; $i < strlen($idcard_base); $i ){ $checksum = substr($idcard_base, $i, 1) * $factor[$i];}$mod = $checksum % 11; $verify_number = $verify_number_list[$mod]; return $verify_number;}// 将15位身份证升级到18位 function idcard_15to18($idcard){ if (strlen($idcard) != 15){ return false;}else{// 如果身份证顺序码是996 997 998 999,这些是为百岁以上老人的特殊编码 if (array_search(substr($idcard, 12, 3), array(’996’, ’997’, ’998’, ’999’)) !== false){ $idcard = substr($idcard, 0, 6) . ’18’. substr($idcard, 6, 9);}else{$idcard = substr($idcard, 0, 6) . ’19’. substr($idcard, 6, 9);}}$idcard = $idcard . idcard_verify_number($idcard); return $idcard;}// 18位身份证校验码有效性检查 function idcard_checksum18($idcard){ if (strlen($idcard) != 18){ return false; } $idcard_base = substr($idcard, 0, 17); if (idcard_verify_number($idcard_base) != strtoupper(substr($idcard, 17, 1))){ return false;}else{return true;}}?>其中的$idcard_base是指身份证中的本位码,本位码是18位身份证里才有的,也就是18位身份证的前17位,最后一位称为校验码

㈥ php 检查字符串中是否存在身份证号

15位数身份证验证正则表达式:

$sfzh=preg_match(“/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/
”,"字符串");

$sfzh=preg_match(“/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/”,"字符串");

㈦ 如何使用PHP实现身份证是否合法的验证

functionis_idcard($id)
{
$id=strtoupper($id);
$regx="/(^d{15}$)|(^d{17}([0-9]|X)$)/";
$arr_split=array();
if(!preg_match($regx,$id))
{
returnFALSE;
}
if(15==strlen($id))//检查15位
{
$regx="/^(d{6})+(d{2})+(d{2})+(d{2})+(d{3})$/";

@preg_match($regx,$id,$arr_split);
//检查生日日期是否正确
$dtm_birth="19".$arr_split[2].'/'.$arr_split[3].'/'.$arr_split[4];
if(!strtotime($dtm_birth))
{
returnFALSE;
}else{
returnTRUE;
}
}
else//检查18位
{
$regx="/^(d{6})+(d{4})+(d{2})+(d{2})+(d{3})([0-9]|X)$/";
@preg_match($regx,$id,$arr_split);
$dtm_birth=$arr_split[2].'/'.$arr_split[3].'/'.$arr_split[4];
if(!strtotime($dtm_birth))//检查生日日期是否正确
{
returnFALSE;
}
else
{
//检验18位身份证的校验码是否正确。
//校验位按照ISO7064:1983.MOD11-2的规定生成,X可以认为是数字10。
$arr_int=array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2);
$arr_ch=array('1','0','X','9','8','7','6','5','4','3','2');
$sign=0;
for($i=0;$i<17;$i++)
{
$b=(int)$id{$i};
$w=$arr_int[$i];
$sign+=$b*$w;
}
$n=$sign%11;
$val_num=$arr_ch[$n];
if($val_num!=substr($id,17,1))
{
returnFALSE;
}//phpfensi.com
else
{
returnTRUE;
}
}
}

}

㈧ php怎样调用前端身份证识别器数据

用vlookup函数,但你要说清楚你的表格中姓名和身份证号码在什么单元格才能给你写出公式,具体是
=VLOOKUP(名字,原数据的区域,身份证号码在数据区域的位置,0)

阅读全文

与php身份证查询相关的资料

热点内容
6轴机器人算法 浏览:890
手机主题照片在哪个文件夹 浏览:294
安卓手机后期用什么软件调色 浏览:628
cad修改快捷键的命令 浏览:242
好钱包app怎么登录不了 浏览:859
树莓派都用python不用c 浏览:757
access文件夹树的构造 浏览:662
安卓多指操作怎么设置 浏览:658
linux树形目录 浏览:727
平方根的简单算法 浏览:898
千牛订单页面信息加密取消 浏览:558
单片机自制红外遥控灯 浏览:719
服务器最小配置怎么弄 浏览:853
ibm服务器硬件如何升级 浏览:923
全球程序员节点赞 浏览:986
php函数传递数组 浏览:631
人工峰群算法的目标函数 浏览:468
如何删加密文档 浏览:105
涂鸦app一键执行如何删除 浏览:756
安卓手机如何打开fr3文件 浏览:743