亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 語言 > PHP > 正文

PHP實現可精確驗證身份證號碼的工具類示例

2024-05-05 00:04:01
字體:
來源:轉載
供稿:網友

本文實例講述了PHP實現可精確驗證身份證號碼的工具類。分享給大家供大家參考,具體如下:

<?phpclass check_IdCard { // $num為身份證號碼,$checkSex:1為男,2為女,不輸入為不驗證 public function checkIdentity($num, $checkSex = '') { // 不是15位或不是18位都是無效身份證號  if (strlen($num) != 15 && strlen($num) != 18) {   return false;  }  // 是數值  if (is_numeric($num)) {   // 如果是15位身份證號   if (strlen($num) == 15) {    // 省市縣(6位)    $areaNum = substr($num, 0, 6);    // 出生年月(6位)    $dateNum = substr($num, 6, 6);    // 性別(3位)    $sexNum = substr($num, 12, 3);   } else {    // 如果是18位身份證號    // 省市縣(6位)    $areaNum = substr($num, 0, 6);    // 出生年月(8位)    $dateNum = substr($num, 6, 8);    // 性別(3位)    $sexNum = substr($num, 14, 3);    // 校驗碼(1位)    $endNum = substr($num, 17, 1);   }  } else {   // 不是數值   if (strlen($num) == 15) {    return false;   } else {    //驗證前17位為數值,且18位為字符x    $check17 = substr($num, 0, 17);    if (!is_numeric($check17)) {     return false;    }    //省市縣(6位)    $areaNum = substr($num, 0, 6);    // 出生年月(8位)    $dateNum = substr($num, 6, 8);    // 性別(3位)    $sexNum = substr($num, 14, 3);    // 校驗碼(1位)    $endNum = substr($num, 17, 1);    if ($endNum != 'x' && $endNum != 'X') {     return false;    }   }  }  //驗證地區  if (isset($areaNum)) {   if (!$this->checkArea($areaNum)) {    return false;   }  }  //驗證日期  if (isset($dateNum)) {   if (!$this->checkDate($dateNum)) {    return false;   }  }  // 性別1為男,2為女  if ($checkSex == 1) {   if (isset($sexNum)) {    if (!$this->checkSex($sexNum)) {     return false;    }   }  } elseif ($checkSex == 2) {   if (isset($sexNum)) {    if ($this->checkSex($sexNum)) {     return false;    }   }  }  //驗證最后一位  if (isset($endNum)) {   if (!$this->checkEnd($endNum, $num)) {    return false;   }  }  return true; } // 驗證城市 private function checkArea($area) {  $num1 = substr($area, 0, 2);  $num2 = substr($area, 2, 2);  $num3 = substr($area, 4, 2);  // 根據GB/T2260—999,省市代碼11到65  if (10 < $num1 && $num1 < 66) {   return true;  } else {   return false;  } } // 驗證出生日期 private function checkDate($date) {  if (strlen($date) == 6) {   $date1 = substr($date, 0, 2);   $date2 = substr($date, 2, 2);   $date3 = substr($date, 4, 2);   $statusY = $this->checkY('19' . $date1);  } else {   $date1 = substr($date, 0, 4);   $date2 = substr($date, 4, 2);   $date3 = substr($date, 6, 2);   $nowY = date("Y", time());   if (1900 < $date1 && $date1 <= $nowY) {    $statusY = $this->checkY($date1);   } else {    return false;   }  }  if (0 < $date2 && $date2 < 13) {   if ($date2 == 2) {    // 潤年    if ($statusY) {     if (0 < $date3 && $date3 <= 29) {      return true;     } else {      return false;     }    } else {     // 平年     if (0 < $date3 && $date3 <= 28) {      return true;     } else {      return false;     }    }   } else {    $maxDateNum = $this->getDateNum($date2);    if (0 < $date3 && $date3 <= $maxDateNum) {     return true;    } else {     return false;    }   }  } else {   return false;  } } // 驗證性別 private function checkSex($sex) {  if ($sex % 2 == 0) {   return false;  } else {   return true;  } } // 驗證18位身份證最后一位 private function checkEnd($end, $num) {  $checkHou = array(1, 0, 'x', 9, 8, 7, 6, 5, 4, 3, 2);  $checkGu = 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+= (int)$checkGu[$i] * (int)$num[$i];  }  $checkHouParameter = $sum % 11;  if ($checkHou[$checkHouParameter] != $num[17]) {   return false;  } else {   return true;  } } // 驗證平年潤年,參數年份,返回 true為潤年 false為平年 private function checkY($Y) {  if (getType($Y) == 'string') {   $Y = (int)$Y;  }  if ($Y % 100 == 0) {   if ($Y % 400 == 0) {    return true;   } else {    return false;   }  } else if ($Y % 4 == 0) {   return true;  } else {   return false;  } } // 當月天數 參數月份(不包括2月) 返回天數 private function getDateNum($month) {  if ($month == 1 || $month == 3 || $month == 5 || $month == 7 || $month == 8 || $month == 10 || $month == 12) {   return 31;  } else if ($month == 2) {  } else {   return 30;  } }}// 測試header("content-type:text/html;charset=utf-8");$num = '230106199202099035'; //此號碼為隨機生成$test = new check_IdCard();$data = $test->checkIdentity($num);var_dump($data);//=============新的18位身份證號碼各位的含義:=======================//1-2位省、自治區、直轄市代碼;11-65//3-4位地級市、盟、自治州代碼;//5-6位縣、縣級市、區代碼;//7-14位出生年月日,比如19670401代表1967年4月1日;//15-17位為順序號,其中17位男為單數,女為雙數;//18位為校驗碼,0-9和X,由公式隨機產生。//舉例://130503 19670401 0012這個身份證號的含義: 13為河北,05為邢臺,03為橋西區,出生日期為1967年4月1日,順序號為001,2為驗證碼//===========15位身份證號碼各位的含義:=======================//1-2位省、自治區、直轄市代碼;//3-4位地級市、盟、自治州代碼;//5-6位縣、縣級市、區代碼;//7-12位出生年月日,比如670401代表1967年4月1日,這是和18位號碼的第一個區別;//13-15位為順序號,其中15位男為單數,女為雙數;//與18位身份證號的第二個區別:沒有最后一位的驗證碼。//舉例://130503 670401 001的含義; 13為河北,05為邢臺,03為橋西區,出生日期為1967年4月1日,順序號為001。

運行結果:

bool(true)

希望本文所述對大家PHP程序設計有所幫助。


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩av在线免费观看一区| 欧美日韩中文在线观看| 免费91麻豆精品国产自产在线观看| 欧美精品videossex性护士| 欧美成人精品激情在线观看| 麻豆国产精品va在线观看不卡| 欧美日韩免费区域视频在线观看| 中文字幕一区二区三区电影| 国产ts人妖一区二区三区| 在线观看日韩欧美| 成人性生交大片免费观看嘿嘿视频| 成人中文字幕+乱码+中文字幕| 51午夜精品视频| 国产精品视频地址| 黄色成人在线免费| 78m国产成人精品视频| 国产精品视频免费在线观看| 亚洲精品永久免费| 丝袜美腿精品国产二区| 丝袜一区二区三区| 欧美性猛交xxxx| 欧美日韩亚洲精品一区二区三区| 国产91成人video| 久久久亚洲影院| 高清在线视频日韩欧美| 国产精品电影网站| 国产成人一区二区| 国产精品久久久久久搜索| 久久久av亚洲男天堂| 国产一区二区三区中文| 久久久免费在线观看| 欧美性猛交丰臀xxxxx网站| 在线国产精品视频| 77777少妇光屁股久久一区| 伊人男人综合视频网| 国产综合在线视频| 在线观看国产精品淫| 国产精品欧美久久久| 亚洲精品网站在线播放gif| 91高清视频免费| 久久精品国产精品亚洲| 国产精品视频久久久| 国产成人精品久久二区二区91| 精品欧美aⅴ在线网站| 欧美亚洲成人精品| 91大神福利视频在线| 国产精品电影观看| 亚洲国产精品成人一区二区| 国产在线播放不卡| 亚洲第一中文字幕| 日韩欧美国产免费播放| 久久亚洲一区二区三区四区五区高| 欧美日韩国产综合新一区| 亚洲va久久久噜噜噜| 国产va免费精品高清在线观看| 色综合伊人色综合网站| 欧美最顶级的aⅴ艳星| 91久久综合亚洲鲁鲁五月天| 精品亚洲夜色av98在线观看| 国内外成人免费激情在线视频| 日韩中文字幕久久| 亚洲一区二区国产| 亚洲视频在线免费观看| 国产一区二区丝袜高跟鞋图片| 欧美性极品少妇精品网站| 欧美精品免费在线| 欧美电影免费观看大全| 亚洲第一色中文字幕| 成人久久精品视频| 国产欧美日韩中文| 亚洲xxxx在线| 久久久久久久久亚洲| 久久久噜噜噜久久中文字免| 日韩精品在线观看一区二区| 欧美第一页在线| 欧美xxxx做受欧美| 国产中文欧美精品| 亚洲美女免费精品视频在线观看| 日韩电影在线观看中文字幕| 国产亚洲精品久久久久动| 亚洲成色777777女色窝| 日韩av免费看| 欧美高清不卡在线| 97色在线观看免费视频| 欧美大人香蕉在线| 成人久久久久爱| 亚洲最大的免费| 久久夜色精品国产亚洲aⅴ| 国产一区二区三区久久精品| 欧美性理论片在线观看片免费| 久久国产精品久久久久久久久久| 欧美大成色www永久网站婷| 91精品国产综合久久香蕉| 亚洲精品国精品久久99热一| 91国产高清在线| 日韩av一区在线观看| 91色视频在线导航| 国产精品亚洲片夜色在线| 国产成人精品优优av| 另类美女黄大片| 国产aⅴ夜夜欢一区二区三区| 成人在线视频网| 日韩欧美在线视频观看| 日韩大片在线观看视频| 91亚洲一区精品| 亚洲三级黄色在线观看| 亚洲性线免费观看视频成熟| 亚洲国产精品久久久久秋霞蜜臀| 国产在线精品播放| 亚洲护士老师的毛茸茸最新章节| 欧美成人免费一级人片100| 国产精品99久久久久久久久久久久| 日本三级韩国三级久久| 免费不卡欧美自拍视频| 久久精品久久久久电影| 欧美第一淫aaasss性| 欧美丰满少妇xxxx| 亚洲最新av网址| 亚洲精品永久免费| 亚洲男人天堂古典| 国产丝袜视频一区| 一本色道久久综合狠狠躁篇的优点| 国产精品亚洲视频在线观看| 久久国产精品久久久久| 亚洲综合在线中文字幕| 久久精品视频在线观看| 成人网在线免费观看| 亚洲一区二区久久| 欧美激情一区二区三级高清视频| 91在线观看免费高清| 精品久久久国产精品999| 原创国产精品91| 92版电视剧仙鹤神针在线观看| 日韩中文字幕在线精品| 97精品视频在线观看| 国产成人精品综合久久久| 久久精品视频在线播放| 北条麻妃久久精品| 国产精品pans私拍| 久久精品国产91精品亚洲| 97久久精品在线| 日本久久久久久| 欧美日韩国产成人在线观看| 日韩视频在线观看免费| 亚洲欧洲在线视频| 欧美限制级电影在线观看| 国产精品久久久久久久久久| 亚洲精品视频在线观看视频| 欧美激情视频播放| 不卡伊人av在线播放| 理论片在线不卡免费观看| 欧美剧在线观看| 欧美精品一本久久男人的天堂| 国产日韩欧美在线| 欧美老女人在线视频| 色青青草原桃花久久综合| 久久久免费电影| 亚洲免费中文字幕| 欧美一级电影在线| 国产亚洲一区精品| 91在线免费观看网站| 欧美裸体xxxxx| 久久97精品久久久久久久不卡| 久久精品一偷一偷国产|