Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/04/2009, 15:21
mrc2407
 
Fecha de Ingreso: octubre-2008
Mensajes: 64
Antigüedad: 18 años
Puntos: 1
Convertir texto a base62 y al revés

Buenas. Estoy intentando convertir cadenas de texto o números a base62, pero el código que tengo no me funciona... Nunca he usado las clases de PHP, por lo que no entiendo el error:

Código PHP:
<?php
class base62 {

    const 
$charset = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
    const 
$base = 62;

    public function 
encode($var) {
        
$stack = array();
        while(
$var > 0) {
            
$remainder = $var % self::$base;
            
$var = (int)($var / self::$base);

            
array_push($stack, self::$charset[$remainder]);
        }

        return 
implode('', array_reverse($stack));
    }

    public function 
decode($var) {

        
$length = strlen($var);
        
$result = 0;
        for(
$i=0; $i<$length; $i++) {
            
$result += self::get_value($var[$i]) * pow(self::$base, ($length-($i+1)));
        }

        return 
$result;
    }

    private function 
get_value($var) {
        if(
ereg('[0-9]', $var))
            return (int)(
ord($var) - ord('0'));
        else if(
ereg('[A-Z]', $var))
            return (int)(
ord($var) - ord('A') + 10);
        else if(
ereg('[a-z]', $var))
            return (int)(
ord($var) - ord('a') + 36);
        else
            return 
$var;
    }
}
?>
Gracias por su ayuda