public static function nif($check)
{
if (!preg_match('/^[KLM]{1}([0-9]+)([A-Z]{1})$/', $check, $matches)) {
return false;
}
$sum = $check[2] + $check[4] + $check[6];
for ($i = 1; $i < 8; $i += 2) {
$tmp = (string) (2 * $check[$i]);
$sum += $tmp[0] + (strlen($tmp) == 2 ? $tmp[1] : 0);
}
$num = 10 - substr($sum, -1);
return $check[strlen($check) - 1] === chr($num + 64);
}