"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:
Y su uso: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; }
$digito=validar_rut($rut);
Un saludo,
pd: basado en codigo Delphi de:
http://www.q3.nu/trucomania/ftesp.html