Ver Mensaje Individual
  #25 (permalink)  
Antiguo 05/07/2006, 05:13
Avatar de djreficul
djreficul
 
Fecha de Ingreso: julio-2006
Ubicación: Cork
Mensajes: 672
Antigüedad: 17 años, 9 meses
Puntos: 0
Pues si te sirve de algo aquí tienes otra para validar CIFs:

Código PHP:
//FUNCION PARA ASEGURAR LA VALIDEZ DE UN CIF DADO
function depuracif ($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;
            }
        }
    }
}
//end function