Validar NIF con php
Necesitamos una funcion que compruebe el numero en si, que llame a otra que compruebe la letra:
function nif_ok(&$nif) {
$nif=trim($nif); //supresion de blancos
//$letras="T|R|W|A|G|M|Y|F|P|D|X|B|N|J|Z|S|Q|V|H|L|C|K|E"; //letras permitidas en el nif
$patron_ok=eregi("^([0-9]{8})-($letras?)$",$nif,$v); //comprobando el patron de nif
if ($patron_ok) {
if (!$v[2])
$nif.=$v[2]=letraNIF($v[1]);
if (letraNIF($v[1])!=$v[2]){
return false; //si la letra es incorrecta devolver no valido
} else {
return true; //si la letra es correcta, validar
}
} else {
return false; //si el patron no es correcto, devolver falso
}
}
function letraNIF($nif){
return substr("TRWAGMYFPDXBNJZSQVHLCKE",$nif%23,1);
}
0 comentarios