|
CLXXV. Funciones de Compresión Zlib
Este módulo le permite leer y escribir de forma
transparente sobre archivos gzip (.gz) comprimidos, a
través de algunas versiones de la mayoría de
funciones del sistema de
archivos que trabajen con archivos comprimidos-gzip (y
archivos sin comprimir también, pero no con sockets).
Nota:
La versión 4.0.4 introdujo una envoltura fopen para
archivos-.gz, de modo que puede usar una URL especial 'zlib:'
para acceder a archivos comprimidos de forma transparente usando
las funciones de acceso normales f*() si precede el nombre o
ruta de archivo con un prefijo 'zlib:' al llamar a
fopen().
En la versión 4.3.0, este prefijo especial ha cambiado a
'zlib://' para prevenir ambigüedades con nombres de archivo
que contengan ':'.
Esta característica requiere una biblioteca C de tiempo
de ejecución que provee la función
fopencookie(). Hasta donde se conoce, la
biblioteca de C GNU es la única que ofrece esta
característica.
Este módulo usa las funciones de zlib, por Jean-loup Gailly y Mark
Adler. Debe usar una versión de zlib >= 1.0.9 con
éste módulo.
Soporte Zlib en PHP no está activo por defecto. Usted necesitará
configurar PHP --with-zlib[=DIR]
La versión para Windows de
PHP tiene soporte nativo para esta
extensión. No se necesita cargar ninguna extensión
adicional para usar estas funciones. Nota:
soporte integrado para zlib en Windows está disponible con PHP 4.3.0
El comportamiento de estas
funciones está afectado por los valores definidos en
php.ini.
La extensión de zlib ofrece la opción de comprimir transparentemente
tus páginas web al vuelo, si el navegador de internet soporta esto. Por lo tanto
hay tres opciones en el
archivo de configuración php.ini.
Tabla 1. Opciones de configuración Zlib | Nombre | Valor por Defecto | Modificable | Changelog |
|---|
| zlib.output_compression | "Off" | PHP_INI_ALL | Available since PHP 4.0.5. | | zlib.output_compression_level | "-1" | PHP_INI_ALL | Available since PHP 4.3.0. | | zlib.output_handler | "" | PHP_INI_ALL | Available since PHP 4.3.0. |
For further details and definitions of the
PHP_INI_* constants, see the Apéndice G.
A continuación se
presenta una corta explicación de las directivas de
configuración.
- zlib.output_compression
boolean/integer
Si se desea comprimir páginas transparentemente. Si esta opción
está en "On" en php.ini o en la configuración del Apache,
las páginas son comprimidas si el navegador envía un encabezado
"Accept-Encoding: gzip" o "deflate". "Content-Encoding: gzip" (respectivamente
"deflate") y "Vary: Accept-Encoding", los encabezados son agregados a la
salida.
Esta opción también acepta valores enteros en vez de los
boleanos "On"/"Off", usando esto usted puede fijar el tamaño del
buffer de salida (default es 4KB).
Nota:
output_handler debe estar
vacío si está puesto en 'On' en lugar de este usted debe
usar zlib.output_handler.
- zlib.output_compression_level
entero
El nivel de compresión usado para la salida transparentemente
comprimida.
- zlib.output_handler
cadena
Usted no puede especificar manejadores adicionales de salida si
zlib.output_compression está activada. Estos ajustes no son lo
mismo que output_handler
sino un diferente orden.
Esta extensión no tiene
ningún tipo de recurso definido. Estas constantes están
definidas por esta extensión y estarán disponibles
solamente cuando la extensión ha sido o bien compilada dentro
de PHP o grabada dinámicamente en tiempo de ejecución.
- FORCE_GZIP
(entero)
- FORCE_DEFLATE
(entero)
Este ejemplo abre un archivo temporal y escribe una cadena de
prueba en él, luego imprime el contenido de este archivo
dos veces.
Ejemplo 1. Pequeño Ejemplo de Zlib
<?php
$nombre_archivo = tempnam('/tmp', 'zlibtest') . '.gz'; echo "<html>\n<head></head>\n<body>\n<pre>\n"; $s = "¡Tan solo una prueba, prueba, prueba, prueba, prueba, prueba!\n";
// abrir el archivo para escritura con maxima compresion $zp = gzopen($nombre_archivo, "w9");
// escribir la cadena en el archivo gzwrite($zp, $s);
// cerrar el archivo gzclose($zp);
// abrir el archivo para lectura $zp = gzopen($nombre_archivo, "r");
// leer 3 caracteres echo gzread($zp, 3);
// mostrar la salida hasta el final de archivo y cerrarlo. gzpassthru($zp); gzclose($zp);
echo "\n";
// abrir el archivo e imprimir su contenido (por segunda vez). if (readgzfile($nombre_archivo) != strlen($s)) { echo "¡Error con las funciones zlib!"; } unlink($nombre_archivo); echo "</pre>\n</body>\n</html>\n";
?>
|
|
- Tabla de contenidos
- gzclose -- Cierra un apuntador de un fichero gz abierto
- gzcompress -- Comprime una cadena
- gzdeflate -- Comprime una cadena
- gzencode -- Crea una cadena comprimida con gzip
- gzeof -- Prueba de apuntador para el fin de archivo gz
- gzfile -- Lee un archivo gz completo en una matriz
- gzgetc -- Obtiene un caracter del archivo GZ apuntado
- gzgets -- Obtiene una línea del archivo apuntado
- gzgetss --
Obtiene una línea del archivo apuntado y le retira las etiquetas HTML
- gzinflate -- Descomprime una cadena comprimida
- gzopen -- Abrir un archivo gz
- gzpassthru --
Imprimir todos los datos que restan en un apuntador a archivo gz
- gzputs -- Alias de gzwrite()
- gzread -- Lectura segura de archivo binario gz
- gzrewind -- Reinicia la posición de un apuntador de archivo gz
- gzseek -- Busca en el archivo gz apuntado
- gztell -- Indica la posición de lectura/escritura del
apuntador a archivo gz
- gzuncompress -- Descomprime una cadena comprimida
- gzwrite -- Escritura en un archivo gz, segura con material
binario
- readgzfile -- Imprimir un archivo gz
- zlib_get_coding_type -- Regresa el tipo de codificación usada para la salida de la compresión
|