Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/04/2009, 15:21
mrc2407
 
Fecha de Ingreso: octubre-2008
Mensajes: 64
Antigüedad: 15 años, 6 meses
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($stackself::$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