【原创】 简易的身份证验证代码
栏目:PHP  作者:隆航  阅读:(2001)

在一些网站上我们看到的要输入身份证号码,然后把自己的信息修改一位或者两位之后发现报错,是不是觉得很神奇呢?

20_151113084614_1.jpg

这里需要注意的是:

加权因子和校验码串为互联网统计  尾数自己测试11次 任意身份证都可以通过

下面是代码:

<?php
/**
 * 函数说明:验证身份证是否真实
 * 注:加权因子和校验码串为互联网统计  尾数自己测试11次 任意身份证都可以通过
 * 传递参数:
 * $number身份证号码
 * 返回参数:
 * true验证通过
 * false验证失败
 */
function isIdCard($number) {
    $sigma = '';
    //加权因子 
    $wi = array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);
    //校验码串 
    $ai = array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');
    //按顺序循环处理前17位 
    for ($i = 0;$i < 17;$i++) { 
        //提取前17位的其中一位,并将变量类型转为实数 
        $b = (int) $number{$i}; 
        //提取相应的加权因子 
        $w = $wi[$i]; 
        //把从身份证号码中提取的一位数字和加权因子相乘,并累加 得到身份证前17位的乘机的和 
        $sigma += $b * $w;
    }
//echo $sigma;die;
    //计算序号  用得到的乘机模11 取余数
    $snumber = $sigma % 11; 
    //按照序号从校验码串中提取相应的余数来验证最后一位。 
    $check_number = $ai[$snumber];
    if ($number{17} == $check_number) {
        return true;
    } else {
        return false;
    }
}
//eg
if (!isIdCard('000000000000000001')) {
echo "身份证号码不合法";
} else {
echo "身份证号码正确";
}
?>




昵称
邮箱
域名
  记住 通知博主
验证码

  程序相关

站点版本:青春博客-V 2.1.0

开源版本:青春博客-Beta v2.0

 下载  在线支付  在线工具  在线音乐

  随机文章