很多站长朋友们都不太清楚php身份证识别,今天小编就来给大家整理php身份证识别,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 php 检查字符串中是否存在身份证号 2、 PHP判断是否是身份证号 3、 thinkphp根据身份证怎么获取所在地区 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判断是否是身份证号/**
* 判断是否为合法的身份证号码
* @param $mobile
* @return int
*/
function isCreditNo($vStr){
$vCity = array(
'11','12','13','14','15','21','22',
'23','31','32','33','34','35','36',
'37','41','42','43','44','45','46',
'50','51','52','53','54','61','62',
'63','64','65','71','81','82','91'
);
if (!preg_match('/^([\d]{17}[xX\d]|[\d]{15})$/', $vStr)) return false;
if (!in_array(substr($vStr, 0, 2), $vCity)) return false;
$vStr = preg_replace('/[xX]$/i', 'a', $vStr);
$vLength = strlen($vStr);
if ($vLength == 18) {
$vBirthday = substr($vStr, 6, 4) . '-' . substr($vStr, 10, 2) . '-' . substr($vStr, 12, 2);
} else {
$vBirthday = '19' . substr($vStr, 6, 2) . '-' . substr($vStr, 8, 2) . '-' . substr($vStr, 10, 2);
}
if (date('Y-m-d', strtotime($vBirthday)) != $vBirthday) return false;
if ($vLength == 18) {
$vSum = 0;
for ($i = 17 ; $i >= 0 ; $i--) {
$vSubStr = substr($vStr, 17 - $i, 1);
$vSum += (pow(2, $i) % 11) * (($vSubStr == 'a') ? 10 : intval($vSubStr , 11));
}
if($vSum % 11 != 1) return false;
}
return true;
}
thinkphp根据身份证怎么获取所在地区方法很多,这里举出两种
通过一些平台接口进行查询,例:有道身份证查询这个(貌似封了),可以自行百度下
自建数据库查询,原理:身份证号码的前6位是用来做地区区别码的,所以只要找到各个地区的区别码,用正则匹配就可以知道身份证所在地区了
关于php身份证识别的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于php身份证识别 php识别身份证图片的详细内容...