Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/05/2002, 23:05
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 4 meses
Puntos: 129
Validar RUT (Chile)

Seguro que mas de uno de Uds. conoce el Algoritmo de validacion de la Cédula de Identidad de Chile:

"Cada dígito de la Cédula tiene que ser multiplicado por 2, 3... 7 en forma inversa. Al llegar a 7 se comienza de nuevo con el 2. Se hace un sumatorio de todos estos resultados .. se divide entre 11 .. se obtiene el resto y ese es el Dígito Verificador (si da 1 se emplea "K")".

Pues eso, aqui tienen una funcion q implementa dicho algoritmo de verificacion .. No he podido testearla con rut's que su digito verificador sea 0 pero deberia funcionar.

Código:
 function validar_rut($rut){
 $x=2;
 $sumatorio=0;
  for ($i=strlen($rut)-1;$i>=0;$i--){
     if ($x>7){$x=2;}
      $sumatorio=$sumatorio+($rut[$i]*$x);
      $x++;
  }
  $digito=bcmod($sumatorio,11);
  $digito=11-$digito;
  
   switch ($digito) {
     case 10:
        $digito="K";
       break;
     case 11:
        $digito="0";
       break;
      }

   return $digito;
}
Y su uso:
$digito=validar_rut($rut);

Un saludo,

pd: basado en codigo Delphi de:
http://www.q3.nu/trucomania/ftesp.html