您现在的位置是:网站首页>
通过身份证号码提取用户身份信息
简介通过新旧身份证号码,提取用户的生日年龄、性别、是否未成年等信息。
直接上代码
/**
* 从身份证中提取生日
* @param $IDCard
* @return mixed
*/
function getIDCardInfo($IDCard)
{
$result['error'] = 0; //0:未知错误,1:身份证格式错误,2:无错误
$result['flag'] = ''; //0标示成年,1标示未成年
$result['tdate'] = ''; //生日,格式如:2012-11-15
if (!preg_match("/^[1-9]([0-9a-zA-Z]{17}|[0-9a-zA-Z]{14})$/i", $IDCard)) {
$result['error'] = 1;
return $result;
} else {
if (strlen($IDCard) == 18) {
$tyear = intval(substr($IDCard, 6, 4));
$tmonth = substr($IDCard, 10, 2);
$tday = substr($IDCard, 12, 2);
if ($tyear > date("Y") || $tyear < (date("Y") - 100)) {
$flag = 0;
} elseif ($tmonth < 0 || $tmonth > 12) {
$flag = 0;
} elseif ($tday < 0 || $tday > 31) {
$flag = 0;
} else {
$tdate = $tyear . "-" . $tmonth . "-" . $tday;
if ((time() - mktime(0, 0, 0, $tmonth, $tday, $tyear)) > 18 * 365 * 24 * 60 * 60) {
$flag = 0;
} else {
$flag = 1;
}
}
} elseif (strlen($IDCard) == 15) {
$tyear = intval("19" . substr($IDCard, 6, 2));
$tmonth = intval(substr($IDCard, 8, 2));
$tday = intval(substr($IDCard, 10, 2));
if ($tyear > date("Y") || $tyear < (date("Y") - 100)) {
$flag = 0;
} elseif ($tmonth < 0 || $tmonth > 12) {
$flag = 0;
} elseif ($tday < 0 || $tday > 31) {
$flag = 0;
} else {
$tdate = $tyear . "-" . $tmonth . "-" . $tday . " 00:00:00";
if ((time() - mktime(0, 0, 0, $tmonth, $tday, $tyear)) > 18 * 365 * 24 * 60 * 60) {
$flag = 0;
} else {
$flag = 1;
}
}
}
}
$result['error'] = 2; //0:未知错误,1:身份证格式错误,2:无错误
$result['isAdult'] = $flag; //0标示成年,1标示未成年
$result['birthday'] = $tdate; //生日日期
return $result;
}返回一个数组,根据注释进行值的进一步处理
很赞哦! (0)
相关文章
文章评论
点击排行
TP5入口文件被修改的问题处理