Skip to content

Instantly share code, notes, and snippets.

@rbarrigav
Last active March 8, 2022 15:57
Show Gist options
  • Save rbarrigav/3881019 to your computer and use it in GitHub Desktop.
Save rbarrigav/3881019 to your computer and use it in GitHub Desktop.
Validar Rut en php
<?php
/**
* Comprueba si el rut ingresado es valido
*
* @param $rut string
* @return true o false
*/
function valida_rut($rut)
{
$rut = preg_replace('/[^k0-9]/i', '', $rut);
$dv = substr($rut, -1);
$numero = substr($rut, 0, strlen($rut)-1);
$i = 2;
$suma = 0;
foreach(array_reverse(str_split($numero)) as $v)
{
if($i==8)
$i = 2;
$suma += $v * $i;
++$i;
}
$dvr = 11 - ($suma % 11);
if($dvr == 11)
$dvr = 0;
if($dvr == 10)
$dvr = 'K';
if($dvr == strtoupper($dv))
return true;
else
return false;
}
@MarioCares
Copy link

@Azahly el código está escrito en PHP, por lo tanto tendrías que montar un servidor.
No tiene nada que ver la aplicación desktop de github.
Si quieres algo simple, ocupa el script que hicieron aquí => https://gist.github.com/rotvulpix/69a24cc199a4253d058c

@filipecrocks
Copy link

Muchas gracias, funciona perfecto.

@DvdQzd
Copy link

DvdQzd commented Aug 24, 2018

Muchas gracias master !

@regCode
Copy link

regCode commented Oct 10, 2018

El código anterior tiene un pequeño error que se produce cuando los dígitos verificadores que se comparan son el "0" y la letra "K". Esto se debe a que el operador igual (==) retorna TRUE al comparar el integer 0 con cualquier string que no pueda ser calzado por la conversión implícita de tipos (http://php.net/manual/en/types.comparisons.php). Mi recomendación es hacer un cast a $dvr antes de comparar. return (string)$dvr == strtoupper($dv)

@sagenev
Copy link

sagenev commented Jan 15, 2020

Me sirvió de maravilla, muchas gracias cumpa!

@Lucianox1
Copy link

muchas gracias!!.

@pzjink
Copy link

pzjink commented Sep 15, 2020

Gracias por compartir!

@felcadev
Copy link

Mil gracias 👍

@yellowspider104
Copy link

Gracias (y)

@quenox
Copy link

quenox commented Mar 26, 2021

Error en el código: prueben poniendo "asd" y les arrojará un True

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment