直接上代码
if (!function_exists('getIDCardInfo')) {
function getIDCardInfo($IDCard, $format = 1)
{
$tdate = 0;
$tyear = 0;
$tmonth = 0;
$tday = 0;
$result['error'] = 0;
$result['flag'] = '';
$result['tdate'] = '';
if (!preg_match("/^(\d{15}$|^\d{18}$|^\d{17}(\d|X|x))$/", $IDCard)) {
$result['error'] = 1;
return $result;
} else {
if (strlen($IDCard) == 18) {
$tyear = intval(substr($IDCard, 6, 4));
$tmonth = intval(substr($IDCard, 10, 2));
$tday = intval(substr($IDCard, 12, 2));
} 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 {
if ($format) {
$tdate = $tmonth . "-" . $tday;
} else {
$tdate = $tmonth . "-" . $tday;
}
if ((time() - mktime(0, 0, 0, $tmonth, $tday, $tyear)) > 18 * 365 * 24 * 60 * 60) {
$flag = 0;
} else {
$flag = 1;
}
}
}
$result['error'] = 2;
$result['isAdult'] = $flag;
$result['birthday'] = $tdate;
return $result;
}
}