Llevo harto tiempo en esto del desarrollo de software, he hecho cosas bastantes simpáticas y complejas, pero nunca, necesité un validador de RUT.
Me puse manos a la obra y la musa dictó:
php
function validaRut($rut){
if(strpos($rut,"-")==false){
$RUT[0] = substr($rut, 0, -1);
$RUT[1] = substr($rut, -1);
}else{
$RUT = explode("-", trim($rut));
}
$elRut = str_replace(".", "", trim($RUT[0]));
$factor = 2;
for($i = strlen($elRut)-1; $i >= 0; $i--):
$factor = $factor > 7 ? 2 : $factor;
$suma += $elRut{$i}*$factor++;
endfor;
$resto = $suma % 11;
$dv = 11 - $resto;
if($dv == 11){
$dv=0;
}else if($dv == 10){
$dv="k";
}else{
$dv=$dv;
}
if($dv == trim(strtolower($RUT[1]))){
return true;
}else{
return false;
}
}
?>
Lo pueden probar acá





















