91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用PHP怎么將15位身份證號轉為18位

發布時間:2021-02-17 14:35:17 來源:億速云 閱讀:310 作者:Leah 欄目:開發技術

這篇文章將為大家詳細講解有關使用PHP怎么將15位身份證號轉為18位,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

第一代身份證:15位身份證號碼的意義

1-2位省、自治區、直轄市代碼;
3-4位地級市、盟、自治州代碼;
5-6位縣、縣級市、區代碼;
7-12位出生年月日,比如670401代表1967年4月1日,這是和18位號碼的第一個區別;
13-15位為順序號,其中15位男為單數,女為雙數;
與18位身份證號的第二個區別:沒有最后一位的校驗碼。

第二代身份證:18位身份證號碼的意義

  ①前1、2位數字表示:所在省份的代碼,河南的省份代碼是41哦!
  ②第3、4位數字表示:所在城市的代碼;
  ③第5、6位數字表示:所在區縣的代碼;
  ④第7~14位數字表示:出生年、月、日;
  ⑤第15、16位數字表示:所在地的派出所的代碼;
  ⑥第17位數字表示性別:奇數表示男性,偶數表示女性;
  ⑦第18位數字是校檢碼:也有的說是個人信息碼,一般是隨計算機隨機產生,用來檢驗身份證的正確性。校檢碼可以是0~9的數字,有時也用x表示。

代碼示例:

<?php
function CardId15To18($card){
  $len = strlen($card);
  if($len == 18){
    return $card;
  }else if($len != 15){
    return false;
  }
  $result = array();
  for($i=0;$i<$len;$i++){
    if($i<=5){
      $result[$i] = intval($card[$i]);
    }else{
      //15位的年份是兩位數,18位的是4位數,留出2位
      $result[$i+2] = intval($card[$i]);
    }
  }
  //留出的2位,補充為年份,年份最后兩位小于17,年份為20XX,否則為19XX
  if(intval(substr($card,6,2)) <= 17){
    $result[6] = 2;
    $result[7] = 0;
  }else{
    $result[6] = 1;
    $result[7] = 9;
  }
  ksort($result);
  //計算最后一位
  //前十七位乘以系數[7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2],
  $arrInt = array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);
  $sum = 0;
  for($i=0;$i<17;$i++){
    $sum += $result[$i] * $arrInt[$i];
  }
  //對11求余,的余數 0 - 10 
  $rod = $sum % 11;
  //所得余數映射到對應數字即可
  $arrCh = array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'); 
  $result[17] = $arrCh[$rod];
  return implode('',$result);
}

關于使用PHP怎么將15位身份證號轉為18位就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

php
AI

凤城市| 武义县| 柘城县| 高安市| 遂溪县| 尉氏县| 昌图县| 左权县| 万宁市| 沙田区| 德州市| 甘德县| 铜山县| 濮阳市| 古蔺县| 义马市| 治多县| 岑巩县| 永登县| 东海县| 迁安市| 温泉县| 大埔区| 仪陇县| 卫辉市| 澜沧| 石景山区| 泰来县| 石嘴山市| 盐边县| 福州市| 黎平县| 专栏| 翁源县| 通榆县| 冀州市| 岳阳市| 屯留县| 高唐县| 秦安县| 西青区|