第1个回答 2013-05-04
楼上太复杂了,我写的是一个excel公式,很简单。15位身份证填写在A1单元格,公式放在B1单元格,就会在B1单元格中自动生成18位身份证号码。 =LEFT(A1,6)&"19"&RIGHT(A1,9)&MID("10X98765432",MOD((SUM(MID(A1,{1,2,3,4,5,6,7,8,9,10,11,12,13,14,15},1)*{7,9,10,5,8,4,6,3,7,9,10,5,8,4,2})+11),11)+1,1)
第2个回答 2013-05-04
<?php
//身份证号转换
function IDCode15to18($ID15)
{
$ID18=substr($ID15,0,6).'19'.substr($ID15,6);
for($i=17;$i>0;$i--){
$num+=(2^$i%11)*(substr($ID18,18-$i,1));
}
$num=$num%11;
switch($num){
case 0:
$code="1";
break;
case 1:
$code="0";
break;
case 2:
$code="X";
break;
default:
$code=strval(12-$num);
break;
}
$ID18.=$code;
return $ID18;
}
if($_POST["old"]!="")
echo IDCode15to18($_POST["old"]);
?>
<form method=post>
<input name=old value="<?PHP echo $_POST["old"];?>">
<input type=submit value="转换">
</form>
这是我从网上找的一段代码,希望对你有帮助。本回答被网友采纳