Home > Backend Development > PHP Tutorial > ID number PHP ID number verification function

ID number PHP ID number verification function

WBOY
Release: 2016-07-29 08:39:50
Original
1101 people have browsed it

Copy codeThe code is as follows:


function validation_filter_id_card($id_card)
{
if(strlen($id_card) == 18)
{
return idcard_checksum18($id_card);
}
elseif ((strlen ($id_card) == 15))
{
$id_card = idcard_15to18($id_card);
return idcard_checksum18($id_card);
}
else
{
return false;
}
}
// Calculate ID card Code verification, according to 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);
//Verification code corresponding 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 people over 100 years old
if (array_search(substr($idcard, 12, 3), array('996', '997', '998', '999')) !== 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;
}
//18-digit ID card verification code validity check
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;
}
}

The above introduces the ID number PHP ID number verification function, including the content of the ID number. I hope it will be helpful to friends who are interested in PHP tutorials.

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template