Comprobación de RUT en PHP

Hace tiempo tenía este post en borrador, se trata de una sencilla función para verificar el RUT en Chile. Puede que sea un poco redundante para sacar algunos cálculos, pero funciona.

No requiere mayor explicación, devolverá true o false según el rut sea real o no. Si el dígito verificador es k, será considerado como si fuese un 10.

function verificar_rut($rut, $digito){
$dv=strtolower($digito)==’k'?10:$digito;
$num=str_split($rut);
$suma=($num[7]*2)+($num[6]*3)+
($num[5]*4)+($num[4]*5)+($num[3]*6)+
($num[2]*7)+($num[1]*2)+($num[0]*3);
$div = floor($suma / 11);
$multi = $div * 11;
$resta = $suma - $multi;
$num= 11 - $resta;
if($num!=$dv){
return false ;
}
else{
return true;
}
}
$mi_rut = verificar_rut(12947567,6);

Nótese que los valores pasados como parámetros, son dos: el $rut (que en este caso está sin puntos) y el dígito verificador. En un contexto real, posiblemente estos parámetros correspondan a dos variables $_POST de un formulario. Para evitar que los puntos causen conflictos, deberíamos hacer algo como esto:

$mi_rut = verificar_rut(eregi_replace(”\.”,”",$_POST['rut']) , $_POST[dv']);

One Response to “Comprobación de RUT en PHP”

  1. Comprobación de RUT en PHP…

    Hace tiempo tenía este post en borrador, se trata de una sencilla función para verificar el RUT en Chile. Puede que sea un poco redundante para sacar algunos cálculos, pero funciona. No requiere mayor explicación, devolverá true o false según el …

Leave a Reply