PHP verification ID card favorites. Personal identity card functions are very useful, especially in the online survey, it is useful to verify the ID card in personal information. <? Php
Personal identity card functions are very useful, especially in the online survey, it is useful to verify the ID card in personal information.
<? 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.
Bytes. <? Php // meter...