/**
* 身份证号码验证(真正要调用的方法)
* @param $id_card 身份证号码
*/
function validation_filter_id_card($id_card)
{
if (strlen($id_card) == 18) {
$idcard_ba = substr($id_card, 0, 17);
if (idcard_verify_number($idcard_ba) != strtoupper(substr($id_card, 17, 1))) {
return fal;
} el {
return true;
}
} elif ((strlen($id_card) == 15)) {
// 如果身份证顺序码是996 997 998 999,这些是为百岁以上老人的特殊编码
if (array_arch(substr($id_card, 12, 3), array('996', '997', '998', '999')) !== fal) {
$idcard = substr($id_card, 0, 6) . '18' . substr($id_card, 6, 9);
山羊养殖 } el {
$idcard = substr($id_card, 0, 6) . '19' . substr($id_card, 6, 9);
}
$idcard = $idcard . idcard_verify_number($idcard);
if (小传怎么写strlen($idcard) != 18) {
return fal;
}
$idcard_ba = substr($idcard, 0, 17);山海情缘
if (idcard_verify_number($idcard_ba) != strtoupper(substr($idcard, 17, 1))) {
return fal;
} el {
return true;
}
} el {
return fal;
}
}
/**
* 计算身份证校验码,根据国家标准gb 11643-1999
* @param $idcard_ba 身份证号码
*/
function idcard_verify_number($idcard_ba)
{
if (strlen($idcard_ba) != 17) {
return fal;
}
//加权因子
$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 < stqq提醒rlen($idcard_ba); $i++) {
$checksum += substr($idcard_ba, $i, 1) * $factor[$i];
}
$mod = $checksum % 11;
$verify_number = $verify_number_list[$mod];
return $verify_number;
}
本文发布于:2023-04-07 13:03:46,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/bda16508c216a24181f0968ea548e057.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:PHP身份证验证.doc
本文 PDF 下载地址:PHP身份证验证.pdf
留言与评论(共有 0 条评论) |