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