PHP 身份證驗(yàn)證

    /**
     * 身份證驗(yàn)證
     * @param  {[type]} $idcard 身份證號(hào)碼
     * @return {[type]} 
     */
    function check_pin($idcard)
    {
        // 只能是18位
        if (strlen($idcard) != 18) {
            return false;
        }
        // 取出本體碼
        $idcard_base = substr($idcard, 0, 17);
        // 取出校驗(yàn)碼
        $verify_code = substr($idcard, 17, 1);
        // 加權(quán)因子
        $factor = array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);
        // 校驗(yàn)碼對(duì)應(yīng)值
        $verify_code_list = array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');
        // 根據(jù)前17位計(jì)算校驗(yàn)碼
        $total = 0;
        for ($i = 0; $i < 17; $i++) {
            $total += substr($idcard_base, $i, 1) * $factor[$i];
        }
        // 取模
        $mod = $total % 11;
        // 比較校驗(yàn)碼
        if ($verify_code == $verify_code_list[$mod]) {
            return true;
        } else {
            return false;
        }
    }
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容