php使用身份证的验证规则

来源:互联网 发布:网络金融p2p涉税 编辑:程序博客网 时间:2024/06/04 20:13

function validation_filter_id_card($id_card){

    if(strlen($id_card)==18){

        return idcard_checksum18($id_card);

    }elseif((strlen($id_card)==15)){

        $id_card=idcard_15to18($id_card);

        return idcard_checksum18($id_card);

    }else{

        return false;

    }

}

// 计算身份证校验码,根据国家标准GB 11643-1999

function idcard_verify_number($idcard_base){

    if(strlen($idcard_base)!=17){

        return false;

    }

    //加权因子

    $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<strlen($idcard_base);$i++){

        $checksum += substr($idcard_base,$i,1) * $factor[$i];

    }

    $mod=$checksum % 11;

    $verify_number=$verify_number_list[$mod];

    return $verify_number;

}

// 15位身份证升级到18

function idcard_15to18($idcard){

    if(strlen($idcard)!=15){

        return false;

    }else{

        // 如果身份证顺序码是996 997 998 999,这些是为百岁以上老人的特殊编码

        if(array_search(substr($idcard,12,3),array('996','997','998','999')) !== false){

            $idcard=substr($idcard,0,6).'18'.substr($idcard,6,9);

        }else{

            $idcard=substr($idcard,0,6).'19'.substr($idcard,6,9);

        }

    }

    $idcard=$idcard.idcard_verify_number($idcard);

    return $idcard;

}

// 18位身份证校验码有效性检查

function idcard_checksum18($idcard){

    if(strlen($idcard)!=18){

        return false;

    }

    $idcard_base=substr($idcard,0,17);

    if(idcard_verify_number($idcard_base)!=strtoupper(substr($idcard,17,1))){

        return false;

    }else{

        return true;

    }

}

调用validation_filter_id_card('身份证号码');

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 泰迪鼻子干燥怎么办 狗狗间歇性抽搐怎么办 鼻子干燥有点痛怎么办 泰迪狗鼻子烂了怎么办 小狗鼻子干脱皮怎么办 鼻子短怎么办除了手术 狗得了狗瘟怎么办 泰迪感染细小怎么办 痔疮术后肛门痒怎么办 肛门脓肿流血了怎么办 检查肛门拉屎了怎么办 怀孕期间肛门湿疹怎么办 头晕检查说没事怎么办 慢性咽喉炎引起的咳嗽怎么办 咽炎引起的咳嗽怎么办? 补牙换药后疼痛怎么办 深度伤口换药疼痛怎么办 孕妇肛门有蛲虫怎么办 孕妇上火拉血怎么办 孕期内检出血怎么办 顺产肛门脱肛了怎么办 怀孕痔疮老脱出怎么办 顺产后浑身酸疼怎么办 爬山后肌肉酸疼怎么办 手上打针胳膊疼怎么办 狗 打针后疼痛怎么办 流产后浑身酸疼怎么办 屋子里潮湿有味怎么办 墙潮湿发霉有味怎么办 当兵体检没有过怎么办 航空面试有纹身怎么办 儿童眼睛外斜视怎么办 大疆imu异常怎么办 新生儿血液回流不好怎么办 灌肠温度高了怎么办 炎症引起的咳嗽怎么办 90岁老人肠梗阻怎么办 84岁老人肠梗阻怎么办 婴儿开塞露后大便肚子疼怎么办 孕早期用开塞露肚子疼怎么办 冰点脱毛后刺痛怎么办