CXXV. Funciones de manejo de archivos Zip (sólo lectura)

Introducción

Este módulo permite leer de forma transparente archivos comprimidos en formato Zip y acceder a su contenido.

Requerimientos

Este módulo utiliza las funciones de la biblioteca ZZIPlib, creada por Guido Draheim. Se requiere una versión de ZZIPlib >= 0.10.6.

Debe tenerse en cuenta que la anterior biblioteca solamente proporciona un conjunto limitado de funciones para el tratamiento de archivos en formato Zip. Para poder crear los archivos en formato Zip se requiere del uso de alguna herramienta externa a PHP.

Instalación

Para poder usar las funciones de manejo de archivos en formato Zip, se debe añadir el parámetro --with-zip[=DIR] a las opciones de configuración de PHP.

Nota: El funcionamiento de las funciones de manejo de archivos en formato Zip es experimental en las versiones de PHP anteriores a la 4.1.0. En esta sección del manual se muestran las funciones que existen en las versiones posteriores a la 4.1.0

Configuración en tiempo de ejecución

Esta extensión no tiene directivas de configuración en php.ini.

Tipos de recursos

Esta extensión no tiene ningún tipo de recurso definido.

Constantes predefinidas

Esta extensión no tiene ninguna constante definida.

Ejemplos

En el siguiente ejemplo se abre un archivo en formato Zip, se lee cada uno de los archivos contenidos en el y se muestran sus contenidos. El archivo test2.zip que se utiliza en el ejemplo es uno de los archivos de prueba que se incluyen en la distribución del código fuente de la libería ZZIPlib.

Ejemplo 1. Ejemplo de utilización de las funciones para manejo de archivos en formato Zip

<?php

$zip
= zip_open("/tmp/test2.zip");

if (
$zip) {

    while (
$zip_entry = zip_read($zip)) {
        echo
"Nombre:                " . zip_entry_name($zip_entry) . "\n";
        echo
"Tamanio sin comprimir: " . zip_entry_filesize($zip_entry) . "\n";
        echo
"Tamanio comprimido:    " . zip_entry_compressedsize($zip_entry) . "\n";
        echo
"Metodo de compresion:  " . zip_entry_compressionmethod($zip_entry) . "\n";

        if (
zip_entry_open($zip, $zip_entry, "r")) {
            echo
"Contenidos del archivo:\n";
            
$buf = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry));
            echo
"$buf\n";

            
zip_entry_close($zip_entry);
        }
        echo
"\n";

    }

    
zip_close($zip);

}

?>
Tabla de contenidos
zip_close -- Cierra un archivo en formato Zip
zip_entry_close -- Cierra una entrada de directorio
zip_entry_compressedsize -- Obtiene el tamaño comprimido de una entrada de directorio
zip_entry_compressionmethod -- Obtiene el método de compresión utilizado por una entrada de directorio
zip_entry_filesize -- Obtiene el tamaño real de una entrada de directorio
zip_entry_name -- Obtiene el nombre de una entrada de directorio
zip_entry_open -- Abre una entrada de directorio en modo solo lectura
zip_entry_read -- Lee los datos de una entrada de directorio abierta
zip_open -- Abre un archivo en formato Zip
zip_read -- Lee la siguiente entrada de un archivo en formato Zip