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

溫馨提示×

溫馨提示×

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

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

PHP如何判斷身份證號

發布時間:2022-03-30 13:55:06 來源:億速云 閱讀:247 作者:小新 欄目:編程語言

這篇文章將為大家詳細講解有關PHP如何判斷身份證號,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

身份證號

/**
* 判斷參數字符串是否為天朝身份證號
* @param $id 需要被判斷的字符串或數字
* @return mixed false 或 array[有內容的array boolean為真]
*/
function is_citizen_id($id) {
  //長度效驗 18位身份證中的X為大寫
  $id = strtoupper($id);
  if(!(preg_match('/^\d{17}(\d|X)$/',$id) || preg_match('/^\d{15}$/',$id))) {
   return false;
  }
  //15位老號碼轉換為18位 并轉換成字符串
  $Wi     = array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2, 1); 
  $Ai     = array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'); 
  $cardNoSum  = 0;
  if(strlen($id)==16) {
    $id    = substr(0, 6).'19'.substr(6, 9); 
    for($i = 0; $i < 17; $i++) {
     $cardNoSum += substr($id,$i,1) * $Wi[$i];
    } 
    $seq    = $cardNoSum % 11; 
    $id    = $id.$Ai[$seq];
  }
  //效驗18位身份證最后一位字符的合法性
  $cardNoSum  = 0;
  $id17    = substr($id,0,17);
  $lastString = substr($id,17,1);
  for($i = 0; $i < 17; $i++) {
    $cardNoSum += substr($id,$i,1) * $Wi[$i];
  } 
  $seq     = $cardNoSum % 11;
  $realString = $Ai[$seq];
  if($lastString!=$realString) {return false;}
  //地域效驗
  $oCity    = array(11=>"北京",12=>"天津",13=>"河北",14=>"山西",15=>"內蒙古",21=>"遼寧",22=>"吉林",23=>"黑龍江",31=>"上海",32=>"江蘇",33=>"浙江",34=>"安徽",35=>"福建",36=>"江西",37=>"山東",41=>"河南",42=>"湖北",43=>"湖南",44=>"廣東",45=>"廣西",46=>"海南",50=>"重慶",51=>"四川",52=>"貴州",53=>"云南",54=>"西藏",61=>"陜西",62=>"甘肅",63=>"青海",64=>"寧夏",65=>"新疆",71=>"臺灣",81=>"香港",82=>"澳門",91=>"國外");
  $City    = substr($id, 0, 2);
  $BirthYear  = substr($id, 6, 4);
  $BirthMonth = substr($id, 10, 2);
  $BirthDay  = substr($id, 12, 2);
  $Sex     = substr($id, 16,1) % 2 ;//男1 女0
  //$Sexcn    = $Sex&#63;'男':'女';
  //地域驗證
  if(is_null($oCity[$City])) {return false;}
  //出生日期效驗
  if($BirthYear>2078 || $BirthYear<1900) {return false;}
  $RealDate  = strtotime($BirthYear.'-'.$BirthMonth.'-'.$BirthDay);
  if(date('Y',$RealDate)!=$BirthYear || date('m',$RealDate)!=$BirthMonth || date('d',$RealDate)!=$BirthDay) {
    return false;
  }
  return array('id'=>$id,'location'=>$oCity[$City],'Y'=>$BirthYear,'m'=>$BirthMonth,'d'=>$BirthDay,'sex'=>$Sex);
}

關于“PHP如何判斷身份證號”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

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

php
AI

三亚市| 元江| 治多县| 白城市| 保德县| 枝江市| 杭州市| 罗源县| 铅山县| 辽宁省| 健康| 繁峙县| 叶城县| 定州市| 宁城县| 富顺县| 安多县| 中阳县| 西林县| 长治县| 突泉县| 桂林市| 乐至县| 楚雄市| 雅江县| 黄陵县| 九龙城区| 报价| 福贡县| 福建省| 乌兰察布市| 翁牛特旗| 阿拉善盟| 涿州市| 双峰县| 霍邱县| 天镇县| 武鸣县| 定兴县| 灌阳县| 汉阴县|