Foros del Web » Programando para Internet » PHP »

Convertir texto a base62 y al revés

Estas en el tema de Convertir texto a base62 y al revés en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 03/04/2009, 15:21
 
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
  #2 (permalink)  
Antiguo 03/04/2009, 15:32
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Convertir texto a base62 y al revés

A que te refieres con "no me funciona"?

Saludos.
  #3 (permalink)  
Antiguo 04/04/2009, 06:16
 
Fecha de Ingreso: octubre-2008
Mensajes: 64
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: Convertir texto a base62 y al revés

Me refiero al mensaje de error que me da:

Parse error: syntax error, unexpected T_VARIABLE, expecting T_STRING in J:\wosportable\www\base62\base62.class.php on line 4
  #4 (permalink)  
Antiguo 04/04/2009, 06:27
 
Fecha de Ingreso: marzo-2009
Mensajes: 35
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Convertir texto a base62 y al revés

Base 62 o base 64???
__________________________________________________ _____________________

base64_decode(PHP 3, PHP 4 )
decodifica datos cifrados con MIME base64
string base64_decode (string datos_cifrados)
base64_decode() decodifica datos_cifrados y devuelve los datos originales. Los datos devueltos pueden ser binarios.

base64_encode(PHP 3, PHP 4 )
Codifica datos en MIME base64
string base64_encode (string datos)
base64_encode() devuelve datos cifrados en base64. Esta codificación está pensada para que los datos binarios
sobrevivan al transporte a través de capas que no son de 8 bits, como por ejemplo los cuerpos de los mensajes de correo.
Los datos codificados con Base64 ocupan aproximadamente un 33% más de espacio que los datos originales.
  #5 (permalink)  
Antiguo 04/04/2009, 06:31
 
Fecha de Ingreso: octubre-2008
Mensajes: 64
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: Convertir texto a base62 y al revés

No, base62. Ví por Internet que las URLs de Spotify estaban codificadas en base62, y quiero probar ver qué sale... Pero no lo consigo.
  #6 (permalink)  
Antiguo 04/04/2009, 07:04
 
Fecha de Ingreso: abril-2008
Mensajes: 435
Antigüedad: 16 años
Puntos: 10
Respuesta: Convertir texto a base62 y al revés

hola
pues el error esta ahi pon ese archivo
in J:\wosportable\www\base62\base62.class.php on line 4

saludos
  #7 (permalink)  
Antiguo 04/04/2009, 09:20
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Convertir texto a base62 y al revés

Cita:
const $charset = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklm nopqrstuvwxyz';
const $base = 62;
Las constantes no se definen usando $, deberia ser:

const CHARSET = "talcosa"

Y para llamarla: base62::CHARSET
  #8 (permalink)  
Antiguo 04/04/2009, 11:51
 
Fecha de Ingreso: octubre-2008
Mensajes: 64
Antigüedad: 15 años, 6 meses
Puntos: 1
Respuesta: Convertir texto a base62 y al revés

Ronruby: Gracias por tu ayuda, pero si uso este código me sigue dando error... En este caso, el error está en la línea:

Código PHP:
array_push($stackself::CHARSET[$remainder]); 
Me dice que no se esperaba el [ Alguna idea?
  #9 (permalink)  
Antiguo 04/04/2009, 12:55
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Convertir texto a base62 y al revés

Cita:
Alguna idea?
Si, no uses constantes. Usa variables normales.

var $charset =
  #10 (permalink)  
Antiguo 04/04/2009, 13:57
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Convertir texto a base62 y al revés

Cuando lo llamas con self::, si tienes que usar el $, por ejemplo self::$algo;

Saludos.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:13.