YiluPHP
这家伙很懒,什么都没有留下...

函数 检验身份证号是否正确

浏览数 101390 最后修改时间
函数名: check_id_card_no


/**
 * 检验身份证号是否正确
 * @param $card_no
 * @return bool
 */
function check_id_card_no($card_no)
{
    $factor = array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2); // 前17位的权重
    $c = array(1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2); //模11后的对应校验码
    $tmp = 0;
    for ($i = 0; $i < 17; $i++) {
        $tmp += intval($card_no[$i]) * $factor[$i];
    }
    $calc_last_char = $c [$tmp % 11];
    if (substr($card_no, -1) != $calc_last_char) {
        return false;
    }
    return true;
}

我来说说