Skip to content

Instantly share code, notes, and snippets.

@ricardodbv
Last active March 8, 2022 15:57
Show Gist options
  • Select an option

  • Save ricardodbv/3881019 to your computer and use it in GitHub Desktop.

Select an option

Save ricardodbv/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;
}
@seba-zuniga

Copy link
Copy Markdown

Muchas gracias estimado, clarito y ordenado.

@coyarzun2013

Copy link
Copy Markdown

pues tiene un bug, si colocar por ejemplo una variable $rut = 'Gdsdfgdfghfg';

te va a retornar true, lo cual es incorrecto

@punchi

punchi commented May 16, 2016

Copy link
Copy Markdown

@frannylac

Copy link
Copy Markdown

Gracias estimado!

@ceaparedes

Copy link
Copy Markdown

estimado una duda, el rut tengo que pasarlo con puntos y guion o solo los digitos???

@Azahly

Azahly commented Aug 13, 2018

Copy link
Copy Markdown

Necesito validar rut en mi pega y la pagina del regitro civil siempre se cae. Se que mi pregunta s muy noob pero
dónde puedo ejecutar este código?
Tengo el desktop de github pero no lo se usar.
Gracias!

ghost commented Aug 17, 2018

Copy link
Copy Markdown

@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
Copy Markdown

Muchas gracias, funciona perfecto.

@DvdQzd

DvdQzd commented Aug 24, 2018

Copy link
Copy Markdown

Muchas gracias master !

@regCode

regCode commented Oct 10, 2018

Copy link
Copy Markdown

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

sagenev commented Jan 15, 2020

Copy link
Copy Markdown

Me sirvió de maravilla, muchas gracias cumpa!

@Lucianox1

Copy link
Copy Markdown

muchas gracias!!.

@SolucionesJS

Copy link
Copy Markdown

Gracias por compartir!

@felcadev

Copy link
Copy Markdown

Mil gracias 👍

@yellowspider104

Copy link
Copy Markdown

Gracias (y)

@quenox

quenox commented Mar 26, 2021

Copy link
Copy Markdown

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