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('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'); // 根据前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 = '这里填写要验证的身份证号码'; var_dump(checkIdCard($idcard)); ?>
php unserialize が false を返す解決策について
php を使用して文字列に基づいて対応する配列を生成する方法
##
以上がPHPでID番号を確認する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。