Ver Mensaje Individual
  #3 (permalink)  
Antiguo 10/12/2009, 13:30
Avatar de omar1977
omar1977
 
Fecha de Ingreso: abril-2006
Mensajes: 178
Antigüedad: 18 años, 1 mes
Puntos: 4
Respuesta: Alguien me explica como funciona esto?

yo hice esto para el asunto del rut....
lo aplico de varias formas... ta las comento
Código PHP:
Class RUT {

    var 
$rut;
    var 
$dv;
    var 
$valido;

    function 
RUT ($rut$dv 'X'){
        if(
preg_match("/-/",$rut)){
            
$dv  substr($rut,strlen($rut)-1);
            
$rut substr($rut,0,strlen($rut)-2);
        }
        
$rut    =   strtoupper(preg_replace('{\.|,|-}','',$rut));
        if(
$dv == 'X'){
            
$this->rut substr($rut,0,strlen($rut)-1);
            
$dv  substr($rut,-1);
        }else{
            
$this->rut $rut;
        }
        
$this->dv $this->Valida($this->rut);

        if(
$this->dv == $dv){
            
$this->valido true;
        }else{
            
$this->valido false;
        }
    }

    function 
Valida($r){
        
$s=1;
        for(
$m=0;$r!=0;$r/=10){
            
$s=($s+$r%10*(9-$m++%6))%11;
        }
        return 
chr($s?$s+47:75);
    }
}  
// END CLASS 
y lo aplico
$RUT = RUT("xx.xxx.xxx-x");
$RUT = RUT("xx.xxx.xxx-x","x");
$RUT = RUT("xx.xxx.xxx","x");

puede ser con puntos o comas o nada.
por ejemplo

Código PHP:
$RUT = new RUT("xx.xxx.xxx-9");
if(
$RUT->Valido){
    echo 
"si vale";
}else{
    echo 
"no vale";


ahora lo que tu preguntas es precisamente la formula para retornar el digito verificador del rut
en esta pagina se esplica un poco como es el cuento, de forma detallada
http://www.dcc.uchile.cl/~mortega/mi...os/validarrut/
__________________
no hay nadie que sea tan inutil, por ultimo sirve como mal ejemplo