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

首頁 > 語言 > PHP > 正文

PHP檢測身份證號碼兩個函數

2024-09-04 11:48:31
字體:
來源:轉載
供稿:網友

檢測身份證號碼,最準確的肯定是通過國家的身份數據中心檢測,想想也不知道,這個東西不是這么好弄的,所以下面介紹一個辦法,通過前17位來檢測,直接上例子了:

  1. <?php 
  2. $idCard  = '12345678901234567';//身份證號碼前17位 
  3. $wi = array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2); 
  4. $ai = array('1''0''X''9''8''7''6''5''4''3''2'); 
  5. $sigma = null; 
  6. for ($i = 0; $i < 17; $i++) { 
  7.  $sigma += ((int) $idCard{$i}) * $wi[$i]; 
  8. echo "身份證號碼:".$idCard.$ai[($sigma % 11)]; 
  9. ?> 
  10. //例2代碼如下: 
  11. function validation_filter_id_card($id_card)  
  12. {  
  13. if(strlen($id_card) == 18)  
  14. {  
  15. return idcard_checksum18($id_card);  
  16. }  
  17. elseif((strlen($id_card) == 15))  
  18. {  
  19. $id_card = idcard_15to18($id_card);  
  20. return idcard_checksum18($id_card);  
  21. }  
  22. else  
  23. {  
  24. return false;  
  25. }  
  26. }  
  27. // 計算身份證校驗碼,根據國家標準GB 11643-1999  
  28. function idcard_verify_number($idcard_base)  
  29. {  
  30. if(strlen($idcard_base) != 17)  
  31. {  
  32. return false;  
  33. }  
  34. //加權因子  
  35. $factor = array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2);  
  36. //校驗碼對應值  
  37. $verify_number_list = array('1''0''X''9''8''7''6''5''4''3''2');  
  38. $checksum = 0;  
  39. for ($i = 0; $i < strlen($idcard_base); $i++)  
  40. {  
  41. $checksum += substr($idcard_base$i, 1) * $factor[$i];  
  42. }  
  43. $mod = $checksum % 11;  
  44. $verify_number = $verify_number_list[$mod];  
  45. return $verify_number;  
  46. }  
  47. // 將15位身份證升級到18位  
  48. function idcard_15to18($idcard){  
  49. if (strlen($idcard) != 15){  
  50. return false;  
  51. }else{  
  52. // 如果身份證順序碼是996 997 998 999,這些是為百歲以上老人的特殊編碼  
  53. if (array_search(substr($idcard, 12, 3), array('996''997''998''999')) !== false){  
  54. $idcard = substr($idcard, 0, 6) . '18'substr($idcard, 6, 9);  
  55. }else{  
  56. $idcard = substr($idcard, 0, 6) . '19'substr($idcard, 6, 9);  
  57. }  
  58. }  
  59. $idcard = $idcard . idcard_verify_number($idcard);  
  60. return $idcard;  
  61. }  
  62. // 18位身份證校驗碼有效性檢查  
  63. function idcard_checksum18($idcard){  
  64. if (strlen($idcard) != 18){ return false; }  
  65. $idcard_base = substr($idcard, 0, 17);  
  66. if (idcard_verify_number($idcard_base) != strtoupper(substr($idcard, 17, 1))){  
  67. return false;  
  68. }else{  
  69. return true;  
  70. }  

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 湘西| 固安县| 龙山县| 卓尼县| 大埔县| 盘锦市| 丰原市| 武平县| 松原市| 沽源县| 博客| 永年县| 双牌县| 扎赉特旗| 淮北市| 张家口市| 什邡市| 沙河市| 紫阳县| 青海省| 保德县| 峨眉山市| 宜宾县| 陈巴尔虎旗| 于都县| 仪陇县| 浏阳市| 永平县| 斗六市| 若尔盖县| 翁牛特旗| 都匀市| 武清区| 南乐县| 县级市| 新民市| 香港 | 陈巴尔虎旗| 宜兴市| 潮安县| 北宁市|