本範例僅適用於中華民國(台灣)的身分證
function check_personal_id($roc_id) {
$id_head = array(
'A' => 10, 'B' => 11, 'C' => 12, 'D' => 13, 'E' => 14,
'F' => 15, 'G' => 16, 'H' => 17, 'J' => 18, 'K' => 19,
'L' => 20, 'M' => 21, 'N' => 22, 'P' => 23, 'Q' => 24,
'R' => 25, 'S' => 26, 'T' => 27, 'U' => 28, 'V' => 29,
'X' => 30, 'Y' => 31, 'W' => 32, 'Z' => 33, 'I' => 34,
'O' => 35);
if (strlen($roc_id) != 10) {
return 9;
}
$n0 = $id_head[strtoupper(substr($roc_id, 0, 1))];
$n[] = '0';
$n[] = substr($n0, 0, 1);
$n[] = substr($n0, 1, 1);
for ($lop1 = 1; $lop1 < strlen($roc_id); $lop1++) {
$n[] = substr($roc_id, $lop1, 1);
}
return (($n[1] + ($n[2] * 9) + ($n[3] * 8) + ($n[4] * 7) + ($n[5] * 6) + ($n[6] * 5) + ($n[7] * 4) + ($n[8] * 3) + ($n[9] * 2) + $n[10] + $n[11]) % 10);
}