Miguel: Así es. Para saber la cantidad de dígitos según la base, se puede usar ceil(log[baseX](10^25))
Por ejemplo: log35(10^25) = 13.6 Al contrario, puedes calcular la base mínima que necesitas: (10^25)(1/10) = 125.8 Necesitaas una base de 126 para llegar a 10 dígitos :) Otra forma más simple podría ser usando una llave en una base de datos o en memcached. Por ejemplo, calcular un aleatorio y guardar su significado ¿te sirve?. 2011/1/19 Miguel Oyarzo O. <ad...@aim.cl> > > Juan C. Olivares > No se exactamente a que te refieres como "arreglo de bytes" pero lo que > hice fue pasar la cadena numerica a base 35 y aun asi solo puedo obtener una > representacion en 14 caracteres de 0 a la z. > > > > ===================================== > Miguel A. Oyarzo O. > Ingeniería en Redes y Telecomunicaciones > Austro Internet S.A. & INALAMBRICA S.A. > Teléfono: [+05661] 710030 > Punta Arenas - Chile > Linux User: # 483188 - counter.li.org > ===================================== > > El 19-01-2011 22:32, Juan C. Olivares escribió: > > Miguel: >> >> Lo que pasa es que ahí estás pasando a base64 el string. Lo que deberías >> hacer es obtener el número como arreglo de bytes... no sé cómo se hace >> exactamente en PHP. >> >> 2011/1/19 Miguel Oyarzo O.<ad...@aim.cl> >> >> >>> Eso pensé yo, pero mira >>> >>> echo base64_encode("801816020110119185516"); >>> Salida: ODAxODE2MDIwMTEwMTE5MTg1NTE2 >>> >>> >>> ===================================== >>> Miguel A. Oyarzo O. >>> Ingeniería en Redes y Telecomunicaciones >>> Austro Internet S.A.& INALAMBRICA S.A. >>> Teléfono: [+05661] 710030 >>> Punta Arenas - Chile >>> Linux User: # 483188 - counter.li.org >>> ===================================== >>> >>> El 19-01-2011 22:20, Juan C. Olivares escribió: >>> >>> Como, al parecer, esa variable es numérica, es súper simple. Sólo debes >>> >>>> cambiar la base (por ejemplo: decimal a base64). >>>> >>>> En teoría, el valor máximo de 21 caracteres (10^21) puede ser >>>> representado >>>> por 12 caracteres en base 64. Puedes usar las funciones de base64 >>>> existentes >>>> en PHP: >>>> >>>> http://php.net/manual/es/function.base64-encode.php >>>> http://php.net/manual/en/function.base64-decode.php >>>> >>>> 2011/1/19 Miguel Oyarzo O.<ad...@aim.cl> >>>> >>>> >>>> Estimados, >>>>> >>>>> Necesito acortar de cualquier forma una variable de 21 caracteres y >>>>> dejar >>>>> una representacion en solo 10. >>>>> >>>>> Ejemplo: >>>>> >>>>> echo acortar("192034123456456789098"); >>>>> Salida: !QQ23"!EQW >>>>> >>>>> echo deacortar("!QQ23"!EQW"); >>>>> Salida: 192034123456456789098 >>>>> >>>>> No más de 10 (ese es el problem). >>>>> Alguna sugerencia? >>>>> >>>>> -- >>>>> ===================================== >>>>> Miguel A. Oyarzo O. >>>>> Ingeniería en Redes y Telecomunicaciones >>>>> Austro Internet S.A.& INALAMBRICA S.A. >>>>> Teléfono: [+05661] 710030 >>>>> Punta Arenas - Chile >>>>> Linux User: # 483188 - counter.li.org >>>>> ===================================== >>>>> >>>>> >>>>> >>>> >>>> >>>> >> >> -- Atte, Juan Cristóbal Olivares *Renovarse o morir: Mi PC de los sesenta tenía veinte mil militantes. Y mi PC del siglo XXI tiene cuarenta gigabytes.*