PHPでID番号を確認する方法

jacklove
jackloveオリジナル
2018-06-09 11:44:426699ブラウズ

ID番号の構造

ID番号は、17桁のボディコードと1ビットのチェックコードからなる特徴的な組み合わせコードです。

左から右への順序は次のとおりです: 6 桁の住所コード、8 桁の生年月日コード、3 桁のシーケンス コード、および 1 桁のチェック コード ## #。

住所コード (最初の 6 桁)

郡 (市、旗、行政区画コード) を示します。地区)は、GB/T2260 の規定に従って実施されるものとする。

生年月日コード (7 桁目から 14 桁目)

コーディング オブジェクトが生まれた年と月を示します。 GB/T7408 の規定に従って、年、月、日のコードの間に区切り文字は使用されません。

シーケンスコード(15~17桁目)

は、同一アドレスコードで識別されるアドレスが同一アドレスであることを示します。地域では、同じ年、同じ月、日に生まれた人に通し番号が割り当てられ、男性には奇数番号、女性には偶数番号が割り当てられます。

チェックコード(18桁目)

1. 17桁のオントロジーコードの重み付け計算と式

S= SUM(Ai * Wi), i=0, ... , 16、まず最初の 17 桁の重みを合計します。

Ai: i 番目の ID 番号のデジタル値を表します。

Wi: i 番目の重み係数を表します。位

Wi:7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2

2.計算モデル

Y = mod(S, 11)

3. 法
を通じて対応するチェックコードを取得します。

Y: 0 1 2 3 4 5 6 7 8 9 10

チェックコード: 1 0 X 9 8 7 6 5 4 3 2

ID 番号を確認する方法:

<?php
function checkIdCard($idcard){
    // 只能是18位
    if(strlen($idcard)!=18){
        return false;
    }
    // 取出本体码
    $idcard_base = substr($idcard, 0, 17);
    // 取出校验码
    $verify_code = substr($idcard, 17, 1);
    // 加权因子
    $factor = array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);
    // 校验码对应值
    $verify_code_list = array(&#39;1&#39;, &#39;0&#39;, &#39;X&#39;, &#39;9&#39;, &#39;8&#39;, &#39;7&#39;, &#39;6&#39;, &#39;5&#39;, &#39;4&#39;, &#39;3&#39;, &#39;2&#39;);
    // 根据前17位计算校验码
    $total = 0;
    for($i=0; $i<17; $i++){
        $total += substr($idcard_base, $i, 1)*$factor[$i];
    }
    // 取模
    $mod = $total % 11;
    // 比较校验码
    if($verify_code == $verify_code_list[$mod]){
        return true;
    }else{
        return false;
    }
}
$idcard = &#39;这里填写要验证的身份证号码&#39;;
var_dump(checkIdCard($idcard));
?>

この記事では、php を使用して ID 番号を確認する方法について説明します。 php 中国語 Web サイトに注意してください。

関連する推奨事項:

php を通じて YouTube 動画情報を取得する方法

php unserialize が false を返す解決策について

php を使用して文字列に基づいて対応する配列を生成する方法

##

以上がPHPでID番号を確認する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。