18位身份证由6位地址+8位生日+3位顺序码(单数男,双数女)和最后一位校验码(ISO 7064:1983.MOD 11-2),6位地址里面前两位为省份,中间两位为市,后面两位为区、镇。
校验码
将前面的身份证号码17位数分别乘以不同的系数。从第一位到第十七位的系数分别为:7-9-10-5-8-4-2-1-6-3-7-9-10-5-8-4-2,然后再除以11取余,得到的值再在对比位数就可以计算出校验码。
<?php
$id = "11010129990101001";
$fa = array(7,9,10,5,8,4,2,1,6,3,7,9,10,5,8,4,2);
$check = array("1","0","X","9","8","7","6","5","4","3","2");
$sum = 0;
for($i = 0;$i<17;$i++){
$sum += $id[$i] * $fa[$i];
}
$checkcode = $check[$sum%11];
echo $checkcode;
?>
本文作者:风雪,转载时请注明本文出处:https://www.fxnetw.com/78.html
心灵博客
2020-08-14 Mac / Chrome 回复
没想到这么简单,收藏了