身份證字號檢查
function id_num_check($id_num)
{
$id_firsts = array("A" => "10", "B" => "11", "C" => "12", "D" => "13", "E" => "14",
"F" => "15", "G" => "16", "H" => "17", "I" => "34", "J" => "18",
"K" => "19", "L" => "20", "M" => "21", "N" => "22", "O" => "35",
"P" => "23", "Q" => "24", "R" => "25", "S" => "26", "T" => "27",
"U" => "28", "V" => "29", "W" => "32", "X" => "30", "Y" => "31",
"Z" => "33");
if (strlen($id_num) != 10)
{
return false;
}
$id_first = substr($id_num, 0, 1);
$id_first_map = $id_firsts[$id_first];
$id_chk_val = substr($id_first_map,0,1) * 1;
$id_chk_val += substr($id_first_map,1,1) * 9;
for ($i=1; $i<9; $i++)
{
$id_chk_val += substr($id_num,$i,1) * (9-$i);
}
$id_chk_val = $id_chk_val % 10;
$id_chk_val = 10 - $id_chk_val;
$id_chk_val = $id_chk_val % 10;
$id_num_last = substr($id_num,-1);
if ($id_chk_val != $id_num_last)
{
return false;
}
return true;
}