<?
function ID_verify($ID)
{
$k=10;
for($i=65;$i<=90;$i++)
{
if($i == 73)
{
$code[chr($i)]=34;
}
elseif($i == 79)
{
$code[chr($i)]=35;
}
else
{
$code[chr($i)]=$k;
$k++;
}
}
$k=10;
for($i=97;$i<=122;$i++)
{
if($i == 105)
{
$code[chr($i)]=34;
}
elseif($i == 111)
{
$code[chr($i)]=35;
}
else
{
$code[chr($i)]=$k;
$k++;
}
}
for ($i=1;$i<=8;$i++)//把要乘以的數做成陣列
{
$Xnum[$i]=10-$i;
}
for ($i=0;$i<=9;$i++)
{
$Atmp="Atmp".$i;
if(!$i)//取出英文的數
{
$$Atmp=$code[substr($ID,$i,1)];
}
else
{
$$Atmp=substr($ID,$i,1);
}
}
$k=1;
for($i=0;$i<=9;$i++)
{
$Atmp="Atmp".$i;
$Btmp=$$Atmp;
if($i < 8)
{
if(strlen($Btmp)==2)//計算第一個英文拆出的數
{
$count=substr($Btmp,0,1)+(substr($Btmp,1,1)*$Xnum[$k]);
}
else //計算數字
{
$count=$count+($Btmp*$Xnum[$k]);
}
$k=$k+1;
}
else
{
$count=$count+$Btmp;
}
}
($count%10 == 0) ? $ret=1 : $ret= 0;
return $ret;
}
?>
<form action="" method="POST" name="myform">
身分證驗證:<input name="ID" type="text" value="" size="8" maxlength="10">
<br>
<input type="submit" name="submit" value="驗證">
</form>
<?
if($ID)
{
if($ret)
{
print "<hr>身分證合法!";
}
else
{
print "<hr>身分證不合法!";
}
}
else
{
print "<hr>請輸入要確認的身份證。";
}
?>
按此觀看範例