1
<?php

$id = $_GET['id'];
if (empty($id)) {
    $id = '640202198803060517';
}

//权重信息
$weight = [];

//身份证数字长度
$len = 18;

//计算权重信息
for ($i = 1; $i < $len; $i++) {
    $exp = 18 - $i;
    $weight[] = pow(2, $exp) % 11;
}

$wa = [];

//计算∑,相乘再相加
for ($i = 0; $i < $len - 1; $i++) {
    $wa[] = $id{$i} * $weight[$i];
}

//取的校验和
$sum = array_sum($wa);

echo '校验和是:' . $sum . "<br />";

//计算校验位,MOD11-2 方法
$yu = (12 - $sum % 11) % 11;

//判断校验位是否合法
$last = $id{$len - 1};
if(strtolower($last) == 'x') {
    $last = 10;
}
echo $yu == $last ? '身份证校验成功' : '身份证校验失败';


已注销
210 声望10 粉丝

爬虫爱好者