国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

php身份證驗證相關類

2024-09-04 11:44:02
字體:
來源:轉載
供稿:網友
  1. <?php  
  2. class IdcardAction extends Action{  
  3. // PHP根據身份證號,自動獲取對應的星座函數  
  4. function get_xingzuo($cid) { // 根據身份證號,自動返回對應的星座  
  5.     if (!$this->isIdCard($cid)) return '';  
  6.     $bir = substr($cid,10,4);  
  7.     $month = (int)substr($bir,0,2);  
  8.     $day = (int)substr($bir,2);  
  9.     $strValue = '';  
  10.     if (($month == 1 && $day >= 20) || ($month == 2 && $day <= 18)) {  
  11.         $strValue = "水瓶座";  
  12.     } else if (($month == 2 && $day >= 19) || ($month == 3 && $day <= 20)) {  
  13.         $strValue = "雙魚座";  
  14.     } else if (($month == 3 && $day > 20) || ($month == 4 && $day <= 19)) {  
  15.         $strValue = "白羊座";  
  16.     } else if (($month == 4 && $day >= 20) || ($month == 5 && $day <= 20)) {  
  17.         $strValue = "金牛座";  
  18.     } else if (($month == 5 && $day >= 21) || ($month == 6 && $day <= 21)) {  
  19.         $strValue = "雙子座";  
  20.     } else if (($month == 6 && $day > 21) || ($month == 7 && $day <= 22)) {  
  21.         $strValue = "巨蟹座";  
  22.     } else if (($month == 7 && $day > 22) || ($month == 8 && $day <= 22)) {  
  23.         $strValue = "獅子座";  
  24.     } else if (($month == 8 && $day >= 23) || ($month == 9 && $day <= 22)) {  
  25.         $strValue = "處女座";  
  26.     } else if (($month == 9 && $day >= 23) || ($month == 10 && $day <= 23)) {  
  27.         $strValue = "天秤座";  
  28.     } else if (($month == 10 && $day > 23) || ($month == 11 && $day <= 22)) {  
  29.         $strValue = "天蝎座";  
  30.     } else if (($month == 11 && $day > 22) || ($month == 12 && $day <= 21)) {  
  31.         $strValue = "射手座";  
  32.     } else if (($month == 12 && $day > 21) || ($month == 1 && $day <= 19)) {  
  33.         $strValue = "魔羯座";  
  34.     }  
  35.     return $strValue;  
  36.        
  37. }  
  38. function get_shengxiao($cid) { //根據身份證號,自動返回對應的生肖  
  39.     if (!$this->isIdCard($cid)) return '';  
  40.     $start = 1901;  
  41.     $end = $end = (int)substr($cid,6,4);  
  42.     $x = ($start - $end) % 12;  
  43.     $value = "";          
  44.     if ($x == 1 || $x == -11) {$value = "鼠";}  
  45.     if ($x == 0) { $value = "牛";}  
  46.     if ($x == 11 || $x == -1) {$value = "虎";}  
  47.     if ($x == 10 || $x == -2) {$value = "兔";}  
  48.     if ($x == 9 || $x == -3) {$value = "龍";}  
  49.     if ($x == 8 || $x == -4) {$value = "蛇";}  
  50.     if ($x == 7 || $x == -5) {$value = "馬";}  
  51.     if ($x == 6 || $x == -6) {$value = "羊";}  
  52.     if ($x == 5 || $x == -7) {$value = "猴";}  
  53.     if ($x == 4 || $x == -8) {$value = "雞";}  
  54.     if ($x == 3 || $x == -9) {$value = "狗";}  
  55.     if ($x == 2 || $x == -10) {$value = "豬";}  
  56.     return $value;  
  57. }  
  58. function get_xingbie($cid) { //根據身份證號,自動返回性別  
  59.     if (!$this->isIdCard($cid)) return '';  
  60.     $sexint = (int)substr($cid,16,1);  
  61.        
  62.     return $sexint % 2 === 0 ? '女' : '男';  
  63. }  
  64.    
  65. function checkbig18($idcard){//判斷是否成年  
  66.      $year = substr($idcard,6,4);  
  67.      $big18 = $year+18;  
  68.      $nowyear = date("Y",time());  
  69.      if($big18 <= $nowyear){  
  70.      return true;  
  71.      }else{  
  72.     return false;   
  73.          }  
  74.     }  
  75.        
  76. function getVerifyBit($idcard_base)  
  77.     {  
  78.         if(strlen($idcard_base) != 17)  
  79.         {  
  80.             return false;  
  81.         }  
  82.         //加權因子  
  83.         $factor = array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);  
  84.         //校驗碼對應值  
  85.         $verify_number_list = array('1''0''X''9''8''7''6''5''4''3''2');  
  86.         $checksum = 0;  
  87.         for ($i = 0; $i < strlen($idcard_base); $i++)  
  88.         {  
  89.             $checksum += substr($idcard_base$i, 1) * $factor[$i];  
  90.         }  
  91.         $mod = $checksum % 11;  
  92.         $verify_number = $verify_number_list[$mod];  
  93.         return $verify_number;  
  94. }  
  95.    
  96. function idcard_verify_number($idcard_base){   
  97. if (strlen($idcard_base) != 17){ return false; }   
  98. // 加權因子   
  99. $factor = array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);  
  100. // 校驗碼對應值   
  101. $verify_number_list = array('1''0''X''9''8''7''6''5''4''3''2');  
  102. $checksum = 0;  
  103. for ($i = 0; $i < strlen($idcard_base); $i++){   
  104. $checksum += substr($idcard_base$i, 1) * $factor[$i];   
  105. }  
  106.    
  107. $mod = $checksum % 11;   
  108. $verify_number = $verify_number_list[$mod];  
  109.    
  110. return $verify_number;   
  111. }  
  112.    
  113.    
  114.    
  115.    
  116. function idcard_15to18($idcard){//15到18轉換  
  117. if (strlen($idcard) != 15){   
  118. return false;   
  119. }else{   
  120. // 如果身份證順序碼是996 997 998 999,這些是為百歲以上老人的特殊編碼   
  121. if (array_search(substr($idcard, 12, 3), array('996''997''998''999')) !== false){   
  122. $idcard = substr($idcard, 0, 6) . '18'substr($idcard, 6, 9);   
  123. }else{   
  124. $idcard = substr($idcard, 0, 6) . '19'substr($idcard, 6, 9);   
  125. }   
  126. }  
  127.    
  128. $idcard = $idcard.$this->idcard_verify_number($idcard);  
  129. return $idcard;   
  130. }  
  131.    
  132.    
  133. function Check_Cardid($cardid)//判斷身份證大是否正確。  
  134. {  
  135.  $cardlen = strlen($cardid);  
  136.  if($cardlen ==15)  
  137.  {  
  138.   $pattern = "/^[0-9]{15}$/"//$pattern="/^d{15}$/";  
  139.   $num = preg_match($pattern,$cardid);  
  140.  }  
  141.  elseif($cardlen ==18)  
  142.  {  
  143.   $pattern = "/^d{17}[0-9xX]$/";  
  144.   $num=preg_match($pattern,$cardid);  
  145.  }  
  146.  else 
  147.  {  
  148.   return false;  
  149.  }  
  150.  return $num;  
  151. }  
  152.    
  153. function ChkGB2312($str){//判斷是否為中文  
  154. if(preg_match('/^[x7f-xff]+$/',$str)){  
  155.     return true;  
  156.     }else{  
  157.     return false;  
  158.     }  
  159. }  
  160.    
  161. function isIdCard($number) { // 檢查是否是身份證號  
  162.     // 轉化為大寫,如出現x  
  163.     $number = strtoupper($number);  
  164.     //加權因子   
  165.     $wi = array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);  
  166.     //校驗碼串   
  167.     $ai = array('1''0''X''9''8''7''6''5''4''3''2');  
  168.     //按順序循環處理前17位   
  169.     $sigma = 0;  
  170.     for ($i = 0;$i < 17;$i++) {   
  171.         //提取前17位的其中一位,并將變量類型轉為實數   
  172.         $b = (int) $number{$i};   
  173.     
  174.         //提取相應的加權因子   
  175.         $w = $wi[$i];  
  176.     
  177.         //把從身份證號碼中提取的一位數字和加權因子相乘,并累加  
  178.         $sigma += $b * $w;   
  179.     }  
  180.     //計算序號   
  181.     $snumber = $sigma % 11;   
  182.     
  183.     //按照序號從校驗碼串中提取相應的字符。   
  184.     $check_number = $ai[$snumber];  
  185.     
  186.     if ($number{17} == $check_number) {  
  187.         return true;  
  188.     } else {  
  189.         return false;  
  190.     }  
  191. }  
  192. }  
  193. ?> 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 嘉黎县| 嘉峪关市| 永丰县| 怀集县| 增城市| 四子王旗| 砀山县| 安顺市| 安塞县| 中卫市| 万宁市| 西吉县| 工布江达县| 泾川县| 阜南县| 社旗县| 金溪县| 建宁县| 汶川县| 楚雄市| 班戈县| 陈巴尔虎旗| 浦北县| 故城县| 贞丰县| 灯塔市| 云安县| 宁城县| 潜江市| 得荣县| 黄平县| 沾化县| 浠水县| 项城市| 高唐县| 仁寿县| 方山县| 成安县| 淮阳县| 龙海市| 伊宁县|