Pregunta

Estoy tratando de comprimir cualquier cadena dada a una versión más corta, copia cadena comprimida de pasta poder que no contiene saltos de línea.

He intentado gzcompress, pero luego copiar / pegar el resultado en un script php diferente y tratar de gzuncompress lanza "Advertencia: gzuncompress (): Error de datos"

¿Hay alguna función nativa de PHP que comprime una cadena, y el resultado es una cadena sin saltos de línea?

Gracias.

¿Fue útil?

Solución

Usted podría intentar base64_encode / base64_decode. Si está comprimiendo a binario para cortar y pegar, yo sugeriría que base64 codificar en primer lugar.

Otros consejos

se puede escapar de sus saltos de línea después de comprimir: plazo gzcompress () en su cadena, reemplazar saltos de línea con un par conocido 2 caracteres en el resultado comprimido. para descomprimir, reemplace el 2 caracteres conocido par de saltos de línea, a continuación, ejecutar gzuncompress () ...

En realidad, tendrá que realizar 2 reemplazos. Ya que no puedo expresar esto en Inglés (no es mi lengua materna), aquí está un ejemplo: el uso '+ n' para escapar saltos de línea. primero tendrá que escapar de cada '+' que se encontraba solo, ya que si es seguido por una 'n' será sustituido accidentalmente por un salto de línea cuando la descompresión; vamos a eligieron '++' para escapar '+. luego vuelva a colocar saltos de línea por '+ n'. cuando descomprimir, reemplazar cada 'n +' par por una línea de rotura, a continuación, cada '++' par por '+'. eso es todo!

Es imposible diseñar un algoritmo de compresión general que siempre se produce una salida más corta que la de entrada. Por lo tanto, si siempre desea salida cortocircuitado de entrada, hay que empezar a restringir lo que el algoritmo puede hacer. Es necesario pensar en la que los personajes son aceptables en la cadena de entrada (largo), y que los personajes son aceptables en su salida de cadena (corto). Una vez que tenga una buena idea de estos, se puede empezar a trabajar cuáles son sus opciones.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top