J'ai écrit plusieurs fonctions liées aux cartes d'identité. Personnellement, je pense qu'elles sont très utiles, notamment lors de la réalisation de questionnaires en ligne, il est très utile de vérifier les cartes d'identité dans les informations personnelles. Cependant, il n'y a que quelques candidats, donc je pourrais aussi bien. garde-les sur mon blog.
<?php
// Calculer le code de vérification de la carte d'identité selon la norme nationale GB 11643-1999
fonction idcard_verify_number($idcard_base){
if (strlen($idcard_base) != 17){ return false }
// Facteur de pondération
$factor = tableau(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2) ;
//Valeur correspondante du code de contrôle
$verify_number_list = array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2');
$somme de contrôle = 0 ;
pour ($i = 0 ; $i < strlen($idcard_base); $i++){
$checksum += substr($idcard_base, $i, 1) * $factor[$i];
}
$mod = $somme de contrôle % 11 ;
$verify_number = $verify_number_list[$mod];
return $verify_number
}
// Mettre à niveau la carte d'identité à 15 chiffres vers 18 chiffres
fonction idcard_15to18($idcard){
if (strlen($idcard) != 15){
renvoie faux ;
}autre{
// Si le code séquence de la carte d'identité est 996 997 998 999, il s'agit de codes spéciaux pour les personnes de plus de 100 ans
if (array_search(substr($idcard, 12, 3), array('996', '997', '998', '999')) !== false){
$idcard = substr($idcard, 0, 6) '18'($idcard, 6, 9);
}autre{
$idcard = substr($idcard, 0, 6) '19' ($idcard, 6, 9);
}
}
$idcard = $idcard . idcard_verify_number($idcard);
return $idcard;
}
// Vérification de la validité du code de vérification de la carte d'identité à 18 chiffres
fonction 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))){
renvoie faux ;
}autre{
renvoie vrai ;
}
}
?>
Le $idcard_base fait référence au code de base de la carte d'identité. Le code de base se trouve uniquement dans la carte d'identité à 18 chiffres, qui sont les 17 premiers chiffres de la carte d'identité à 18 chiffres. Le dernier chiffre est appelé le chèque. code et est généralement utilisé. Il n'est pas nécessaire d'appeler directement idcard_verify_number(). La plupart des applications habituelles utilisent les deux dernières fonctions. Ces fonctions ne se soucient pas du format de la chaîne d'identification et effectuent la vérification du format avant d'appeler.