In this article, we share with you the knowledge of verifying ID number in PHP. It is also a small technique. We hope it can help everyone.
The structure of the ID number
The ID number is a characteristic combination code, consisting of a 17-digit body code and It consists of one bit of check code.
The order from left to right is as follows: Six-digit address code, eight-digit date of birth code, three-digit sequence code and one digit Verification code .
Address code (first six digits)
represents the administrative division code of the county (city, banner, district) where the coding object’s permanent residence is located, and shall be implemented in accordance with the provisions of GB/T2260.
Date of birth code (seventh to fourteenth digit)
represents the year, month, and day of the birth of the encoding object. It is implemented in accordance with the provisions of GB/T7408. There is no separator between the year, month, and day codes.
## Sequence code (15th to 17th digit)
represents the sequence number assigned to people born in the same year, month, and day within the area identified by the same address code. Odd numbers of the sequence codes are assigned to males, and even numbers are assigned to females. .
Check code (18th digit)
1. Seventeen-digit ontology code weighted summation formula
S= SUM(Ai * Wi), i=0 , ... , 16, First sum the weights of the first 17 digits.
Ai: Represents the digital value of the ID number at the i-th position
Wi: Represents the i-th position Weighting factor
Wi: 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2
2. Calculate the modulus
Y = mod(S, 11)
3. Get the corresponding check code
Y through the module: 0 1 2 3 4 5 6 7 8 9 10
Verification code: 1 0 #[php] view plain copy
<?php function checkIdCard($idcard){ // 只能是18位 if(strlen($idcard)!=18){ return false; } // 取出本体码 $idcard_base = substr($idcard, 0, 17); // 取出校验码 $verify_code = substr($idcard, 17, 1); // 加权因子 $factor = array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2); // 校验码对应值 $verify_code_list = array('1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'); // 根据前17位计算校验码 $total = 0; for($i=0; $i<17; $i++){ $total += substr($idcard_base, $i, 1)*$factor[$i]; } // 取模 $mod = $total % 11; // 比较校验码 if($verify_code == $verify_code_list[$mod]){ return true; }else{ return false; } } $idcard = '这里填写要验证的身份证号码'; var_dump(checkIdCard($idcard)); ?>
Related recommendations:The perfect way to implement ID card verification js regularity
Use JavaScript to verify ID card
php to verify whether the ID number is correct Example codeThe above is the detailed content of php verify ID number. For more information, please follow other related articles on the PHP Chinese website!