Esta función es capaz de comprobar si el NIF tiene un formato correcto o no, es decir, si la letra indicada es la que corresponde a la cadena de 8 números. Que devuelva un resultado positivo no quiere decir que sea un número que exista, sólo que el formato es correcto.
function comprobar_nif($nif){
$letras = explode(',','T,R,W,A,G,M,Y,F,P,D,X,B,N,J,Z,S,Q,V,H,L,C,K,E');
if (
(strlen($nif)!=9) ||
(!is_long($entero=intval(substr($nif,0,8)))) ||
(!in_array($letra=strtoupper(substr($nif,8,1)),$letras)) ||
($letra!=$letras[$entero%23])
){
return false;
}else{
return true;
}
}
Si le indicamos 00000000T
devolverá true
, aunque no creo que exista (este es el número que uso para hacer pruebas). Y creo que el uso es bastante sencillo, sería algo como esto
if(comprobar_nif('00000000T')){
echo 'Correcto';
}else{
echo 'Incorrecto';
}