public static function personId($check)
{
$check = strtoupper($check);
if (!preg_match('/^[A-Z][1-2][0-9]{8}$/', $check)) {
return false;
}
$keyTable = ['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];
$n1 = $keyTable[$check[0]];
$checksum = intval($n1 / 10) + $n1 % 10 * 9;
for ($i = 1; $i < 9; $i++) {
$checksum += $check[$i] * (9 - $i);
}
return substr(10 - $checksum % 10, 0, 1) == $check[9];
}