PHP: ¿Cómo puedo obtener el dígito verificador de un RUT? (Chile)

De Foros del Web

Sólo coloca esta función en el lugar que más te acomode, obviamente antes de hacerle una llamada

Código PHP:

<?php 
/*********************************************************
Función Validador de Dígito verificador RUT, by HiperJP - 2003
Ult. Modificación: 26-08-2003 7:58 AM
Convertido originalmente de una versión en ASP.
*********************************************************/
function ValidaDVRut($rut) {
 
    $tur = strrev($rut);
    $mult = 2;
 
    for ($i = 0; $i <= strlen($tur); $i++) { 
       if ($mult > 7) $mult = 2; 
 
       $suma = $mult * substr($tur, $i, 1) + $suma;
       $mult = $mult + 1;
    }
 
    $valor = 11 - ($suma % 11);
 
    if ($valor == 11) { 
        $codigo_veri = "0";
      } elseif ($valor == 10) {
        $codigo_veri = "k";
      } else { 
        $codigo_veri = $valor;
    }
  return $codigo_veri;
}
?> 

La función en si retorna el Digito Verificador del rut pasado como parámetro en $rut (ojo, sólo RUT, sin DV). Para su utilización, hacen una llamada de la forma:

Código PHP:

if (ValidaDVRut($_POST['rut'])==$_POST['rut_dv'])
echo "Rut válido!!";
else
echo "Rut inválido!!";  

Donde, $_POST['rut'] es la variable que trae el rut completo, sin puntos, pasada por un formulario. y, $_POST['rut_dv'] es la variable que nos trae el DV enviado por el mismo formulario. Luego de esto es una simple comparación.


--Hiperjp 03 Jun 2004

Este artículo es parte de las FAQs de PHP y el Manual de PHP.

Herramientas personales