国产探花免费观看_亚洲丰满少妇自慰呻吟_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. }  

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 天门市| 汝城县| 延庆县| 磴口县| 柞水县| 白朗县| 乌恰县| 会泽县| 如东县| 会理县| 阿合奇县| 平和县| 太白县| 大同市| 哈尔滨市| 平谷区| 安顺市| 常州市| 方山县| 青河县| 攀枝花市| 喀喇沁旗| 祥云县| 渭源县| 贵溪市| 米泉市| 大城县| 东兰县| 隆林| 南汇区| 阿巴嘎旗| 大连市| 互助| 龙山县| 长宁区| 上蔡县| 汶川县| 台中市| 巨鹿县| 文化| 肥东县|