国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

Heim php教程 PHP源碼 php驗證身份證號碼正確性的函數(shù)

php驗證身份證號碼正確性的函數(shù)

Mar 23, 2017 am 10:48 AM
überprüfung der Identit?tskartennummer

這篇文章主要為大家分享了兩段php驗證身份證號碼是否正確的函數(shù),感興趣的小伙伴們可以參考一下

身份證驗證最簡單的就是判斷長度了,當(dāng)然這種非常簡單破了如果要更規(guī)則一點我們需要對身份證號碼進行一些按生成規(guī)則驗證了,下面整理了一些函數(shù)我們來看看。

例子,今天分享一個php驗證身份證號碼是否正確函數(shù).

/********************php驗證身份證號碼是否正確函數(shù)*********************/ 
function is_idcard( $id ) 
{ 
  $id = strtoupper($id); 
  $regx = "/(^\d{15}$)|(^\d{17}([0-9]|X)$)/"; 
  $arr_split = array(); 
  if(!preg_match($regx, $id)) 
  { 
    return FALSE; 
  } 
  if(15==strlen($id)) //檢查15位 
  { 
    $regx = "/^(\d{6})+(\d{2})+(\d{2})+(\d{2})+(\d{3})$/"; 
 
    @preg_match($regx, $id, $arr_split); 
    //檢查生日日期是否正確 
    $dtm_birth = "19".$arr_split[2] . '/' . $arr_split[3]. '/' .$arr_split[4]; 
    if(!strtotime($dtm_birth)) 
    { 
      return FALSE; 
    } else { 
      return TRUE; 
    } 
  } 
  else      //檢查18位 
  { 
    $regx = "/^(\d{6})+(\d{4})+(\d{2})+(\d{2})+(\d{3})([0-9]|X)$/"; 
    @preg_match($regx, $id, $arr_split); 
    $dtm_birth = $arr_split[2] . '/' . $arr_split[3]. '/' .$arr_split[4]; 
    if(!strtotime($dtm_birth)) //檢查生日日期是否正確 
    { 
      return FALSE; 
    } 
    else 
    { 
      //檢驗18位身份證的校驗碼是否正確。 
      //校驗位按照ISO 7064:1983.MOD 11-2的規(guī)定生成,X可以認為是數(shù)字10。 
      $arr_int = array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2); 
      $arr_ch = array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'); 
      $sign = 0; 
      for ( $i = 0; $i < 17; $i++ ) 
      { 
        $b = (int) $id{$i}; 
        $w = $arr_int[$i]; 
        $sign += $b * $w; 
      } 
      $n = $sign % 11; 
      $val_num = $arr_ch[$n]; 
      if ($val_num != substr($id,17, 1)) 
      { 
        return FALSE; 
      } //phpfensi.com 
      else 
      { 
        return TRUE; 
      } 
    } 
  } 
 
}

調(diào)用身份證驗證函數(shù)
$idc=is_idcard("身份證號碼");
if($idc){echo "正確";}else{echo "錯誤";}

例子二:

function validation_filter_id_card($id_card){ 
 if(strlen($id_card)==18){ 
 return idcard_checksum18($id_card); 
 }elseif((strlen($id_card)==15)){ 
 $id_card=idcard_15to18($id_card); 
 return idcard_checksum18($id_card); 
 }else{ 
 return false; 
 } 
} 
// 計算身份證校驗碼,根據(jù)國家標(biāo)準(zhǔn)GB 11643-1999 
function idcard_verify_number($idcard_base){ 
 if(strlen($idcard_base)!=17){ 
 return false; 
 } 
 //加權(quán)因子 
 $factor=array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2); 
 //校驗碼對應(yīng)值 
 $verify_number_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;); 
 $checksum=0; 
 for($i=0;$i<strlen($idcard_base);$i++){ 
 $checksum += substr($idcard_base,$i,1) * $factor[$i]; 
 } 
 $mod=$checksum % 11; 
 $verify_number=$verify_number_list[$mod]; 
 return $verify_number; 
} 
// 將15位身份證升級到18位 
function idcard_15to18($idcard){ 
 if(strlen($idcard)!=15){ 
 return false; 
 }else{ 
 // 如果身份證順序碼是996 997 998 999,這些是為百歲以上老人的特殊編碼 
 if(array_search(substr($idcard,12,3),array(&#39;996&#39;,&#39;997&#39;,&#39;998&#39;,&#39;999&#39;)) !== false){ 
  $idcard=substr($idcard,0,6).&#39;18&#39;.substr($idcard,6,9); 
 }else{ 
  $idcard=substr($idcard,0,6).&#39;19&#39;.substr($idcard,6,9); 
 } 
 } 
 $idcard=$idcard.idcard_verify_number($idcard); 
 return $idcard; 
} 
// 18位身份證校驗碼有效性檢查 
function idcard_checksum18($idcard){ 
 if(strlen($idcard)!=18){ 
 return false; 
 } 
 $idcard_base=substr($idcard,0,17); 
 if(idcard_verify_number($idcard_base)!=strtoupper(substr($idcard,17,1))){ 
 return false; 
 }else{ 
 return true; 
 } 
}

調(diào)用方法如:validation_filter_id_card('身份證號碼');

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助。

相關(guān)文章:

PHP 身份證號驗證函數(shù)

php中獲取真實IP地址與IP地址驗證函數(shù)

項目開發(fā)中常用的三個PHP表單驗證函數(shù)

Erkl?rung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Hei?e KI -Werkzeuge

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem v?llig kostenlosen KI-Gesichtstausch-Tool aus!

Hei?e Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Hei?e Themen

PHP-Tutorial
1502
276