亚州av综合色区无码一区,午夜一区二区三区亚洲影院电影网,天堂а√在线地址,性人久久网av,无码内射成人免费喷射

曉木蟲
學(xué)術(shù)數(shù)據(jù)庫客戶端

PHP腳本 校驗/補全身份證號碼的代碼

 找回密碼
 注冊新賬號

QQ登录

微信登录

PHP腳本 校驗/補全身份證號碼的代碼

跳轉(zhuǎn)到指定樓層
  1. <?php
  2. /*
  3. * 身份證號碼的結(jié)構(gòu)
  4. * 六位數(shù)字地址碼,八位數(shù)字出生日期碼,三位數(shù)字順序碼和一位校驗碼。
  5. * 地址碼按GB/T2260的規(guī)定執(zhí)行。
  6. * 出生日期碼按GB/T7408的規(guī)定執(zhí)行,年、月、日代碼之間不用分隔符。
  7. * 順序碼:表示在同一地址碼所標(biāo)識的區(qū)域范圍內(nèi),對同年、同月、同日出生的人編定的順序號。
  8. **       順序碼的奇數(shù)分配給男性,偶數(shù)分配給女性。
  9. * 校驗碼計算步驟
  10. ** 前17位加權(quán)求和,再用和除以11后所得的余數(shù),該余數(shù)即為校驗碼
  11. */

  12. $addr = "640522";  // 前六位數(shù)字
  13. $seq = "008";      // 倒數(shù)第一位前面的三位數(shù)
  14. $val = "5";        // 最后一位數(shù)
  15. $year = "2013";    // 出生的年

  16. $ids = "";
  17. for($m = 1;$m < 13;$m++){
  18.     $month = str_pad($m, 2, "0", STR_PAD_LEFT);
  19.     $month_max_day = cal_days_in_month(CAL_GREGORIAN, $month, $year);
  20.     for($d = 1;$d < $month_max_day+1;$d++){
  21.         $monthday = str_pad($d, 2, "0", STR_PAD_LEFT);
  22.         $date = $year . $month . $monthday;
  23.         $id = $addr . $date . $seq . $val;
  24.         // echo $id ."<br>\r\n";
  25.         if(checkId($id)){
  26.             echo $id ."<br>\r\n";
  27.             $id_format = $addr .'    '. $date .'    '. $seq . $val;
  28.             $ids .= $id_format ."\r\n";
  29.         }
  30.     }
  31. }
  32. $ids_array = explode("\r\n", $ids);
  33. $line = count($ids_array) -1;
  34. echo $line;
  35. file_put_contents($year .'id.txt', $ids);

  36. function checkId($id){
  37.     $len = strlen($id);
  38.     if($len != 18){
  39.         return 0;
  40.     }
  41.     # 前17位的每一位乘以固定值后再求和
  42.     $a = str_split($id, 1); // 前17位切分成數(shù)組
  43.     $w = array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2); // 前17位對應(yīng)的加權(quán)因子
  44.     $c = array(1, 0, 'X', 9, 8, 7, 6, 5, 4, 3, 2); // 對應(yīng)的10個校驗碼,10用X代替
  45.     $sum = 0;
  46.     for($i = 0;$i < 17;$i++){
  47.         $sum = $sum + $a[$i] * $w[$i];
  48.     }
  49.     # 計算模(當(dāng)兩數(shù)為正整數(shù)時,模數(shù)等于余數(shù))
  50.     $r = $sum % 11;
  51.     $res = $c[$r];
  52.     // echo "校驗位是 => " . $res;
  53.     if($res == $a[17]){
  54.         return $id;
  55.     }else{
  56.         return false;
  57.     }
  58. }

  59. $city = array(
  60.     11 => "北京", 12 => "天津",  13 => "河北", 14 => "山西", 15 => "內(nèi)蒙古", 21 => "遼寧",
  61.     22 => "吉林", 23 => "黑龍江",31 => "上海", 32 => "江蘇", 33 => "浙江",   34 => "安徽",
  62.     35 => "福建", 36 => "江西",  37 => "山東", 41 => "河南", 42 => "湖北",   43 => "湖南",
  63.     44 => "廣東", 45 => "廣西",  46 => "海南", 50 => "重慶", 51 => "四川",   52 => "貴州",
  64.     53 => "云南", 54 => "西藏",  61 => "陜西", 62 => "甘肅", 63 => "青海",   64 => "寧夏",
  65.     65 => "新疆", 71 => "臺灣",  81 => "香港", 82 => "澳門", 91 => "國外"
  66. );

  67. ?>
復(fù)制代碼


PHP腳本 校驗/補全身份證號碼的代碼
您需要登錄后才可以回帖 登錄 | 注冊新賬號

本版積分規(guī)則  | 请遵守晓木虫管理条例,不得违反国家法律法规

返回頂部