Php ID card functions are useful for individuals, especially in online surveys.
Php ID card functions are useful for individuals, especially in online surveys.
PHP code
- <? Php
- // Calculate the ID card verification code based on the national standard GB 11643-1999
- Function idcard_verify_number ($ idcard_base ){
- If (strlen ($ idcard_base )! = 17) {return false ;}
- // Weighting factor
- $ Factor = array (7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2 );
- // Check code value
- $ Verify_number_list = array ('1', '0', 'X', '9', '8', '7', '6', '5 ', '4', '3', '2 ');
- $ 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;
- }
- // Upgrade the 15-digit ID card to 18-digit
- Function idcard_15to18 ($ idcard ){
- If (strlen ($ idcard )! = 15 ){
- Return false;
- } Else {
- // If the ID card sequence code is 996 997 998 999, these are special codes for elderly people over years old
- If (array_search (substr ($ idcard, 12, 3), array ('20160301', '20160301', '20160301 '))! = False ){
- $ Idcard = substr ($ idcard, 0, 6). '18'. substr ($ idcard, 6, 9 );
- } Else {
- $ Idcard = substr ($ idcard, 0, 6). '19'. substr ($ idcard, 6, 9 );
- }
- }
- $ Idcard = $ idcard. idcard_verify_number ($ idcard );
- Return $ idcard;
- }
- // Check the validity of the 18-digit ID card verification code
- 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;
- }
- }
- ?>
$ Idcard_base indicates the local code in the ID card. this code is only available in 18-digit ID cards, that is, the first 17 digits of the 18-digit ID card. the last digit is called the verification code.
Generally, you do not need to directly call idcard_verify_number () when using idcard_verify_number (). most common applications use the last two functions. these functions do not care about the format of the ID card string. you must perform a format check before calling the function.