Tema: Validar NIF
Ver Mensaje Individual
  #2 (permalink)  
Antiguo 14/09/2006, 02:15
Avatar de djreficul
djreficul
 
Fecha de Ingreso: julio-2006
Ubicación: Cork
Mensajes: 672
Antigüedad: 17 años, 10 meses
Puntos: 0
Si buscas en google validar DNI (o NIF o cualquier otra cosa) seguro q te sale aunque sea en javascript. Y de ahí a pasarlo a PHP está tirado.

Te coloco las funciones q uso para validar NIF y CIF:

Código PHP:
function validadni ($dni) {
    
$nif=substr ($dni08)+0;    
    
$letra=strtoupper (substr ($dni, -1));
    
$letranif_array[0]="T";
    
$letranif_array[1]="R";
    
$letranif_array[2]="W";
    
$letranif_array[3]="A";
    
$letranif_array[4]="G";
    
$letranif_array[5]="M";
    
$letranif_array[6]="Y";
    
$letranif_array[7]="F";
    
$letranif_array[8]="P";
    
$letranif_array[9]="D";
    
$letranif_array[10]="X";
    
$letranif_array[11]="B";
    
$letranif_array[12]="N";
    
$letranif_array[13]="J";
    
$letranif_array[14]="Z";
    
$letranif_array[15]="S";
    
$letranif_array[16]="Q";
    
$letranif_array[17]="V";
    
$letranif_array[18]="H";
    
$letranif_array[19]="L";
    
$letranif_array[20]="C";
    
$letranif_array[21]="K";
    
$letranif_array[22]="E";
    
$letranif_array[23]="F";
    
$resto=$nif%23;
    if (
$letra==$letranif_array[$resto] && $nif!=0){
        return 
true;
    }else{
        return 
false;
    }
}

function 
validacif ($cif) {
    
$soc=strtoupper(substr ($cif,0,1));
    
$arraysoc=array ("A","B","C","D","E","F","G","H","K","L","M","N","P","Q","S");
    if (!
in_array ($soc,$arraysoc)) {
        return 
false;
    } else {
        
$numero=substr ($cif,1,-1);
        if (
$numero==0) {
            return 
false;
        } else {
            
$control=substr ($cif,-1);
            for (
$i=0;$i<strlen($numero);$i++) {
                
$array[$i]=substr ($numero,$i,1);
            }
            
$par=0;
            for (
$i=1;$i<=5;$i=$i+2) {
                
$par=$par+$array[$i];
            }
            
$impar=0;
            for (
$i=0;$i<=6;$i=$i+2) {
                
$sub=0;
                
$sub=$array[$i]*2;
                if (
$sub>10$sub=$sub-9;
                
$impar=$impar+$sub;
            }
            
$sum=$par+$impar;
            while (
$sum>10$sum=$sum-10;
            
$cont=10-$sum;
            
$letra[1]="A";
            
$letra[2]="B";
            
$letra[3]="C";
            
$letra[4]="D";
            
$letra[5]="E";
            
$letra[6]="F";
            
$letra[7]="G";
            
$letra[8]="H";
            
$letra[9]="I";
            
$letra[0]="J";
            if (
$control==$cont || strcmp (strtoupper($control),$letra[$cont])==0) {
                return 
true;
            } else {
                return 
false;
            }
        }
    }

Espero q te sean útiles.

Saludos.
__________________
La muerte es un camino que todos debemos recorrer...