Saltar al contenido

PHP Zip

Los archivos ZIP son archivos comprimidos mediante el algoritmo de compresión zip. Suelen utilizarse para reducir el tamaño de los archivos y facilitar su transferencia por internet o su almacenamiento en disco. Un archivo ZIP puede contener uno o más archivos y, por lo general, tiene la extensión .zip.

Clase ZipArchive de PHP

Las funciones heredadas zip_* se marcaron como obsoletas en PHP 7.4 y se eliminaron en PHP 8.0. Las aplicaciones modernas de PHP deben utilizar la clase integrada ZipArchive, que ofrece una interfaz orientada a objetos robusta para crear, leer y extraer archivos ZIP.

Los métodos principales incluyen:

  • open() – Abre un archivo ZIP para lectura o escritura.
  • extractTo() – Extrae todos los archivos o entradas específicas a un directorio especificado.
  • close() – Cierra el manejador del archivo.
  • getStatusString() – Devuelve un mensaje de estado legible por humanos para el manejo de errores.

Ejemplo de uso

El siguiente ejemplo muestra cómo utilizar ZipArchive para extraer el contenido de un archivo ZIP en el disco, incluyendo un manejo básico de errores:

php
$zip = new ZipArchive();
$filename = 'example.zip';
$extractTo = './extracted_files';

if ($zip->open($filename) === true) {
    if (!is_dir($extractTo)) {
        mkdir($extractTo, 0755, true);
    }

    if ($zip->extractTo($extractTo) === true) {
        echo "Archive extracted successfully.";
    } else {
        echo "Extraction failed: " . $zip->getStatusString();
    }

    $zip->close();
} else {
    echo "Failed to open archive.";
}

En este ejemplo, instanciamos la clase ZipArchive e intentamos abrir el archivo mediante open(). Si tiene éxito, nos aseguramos de que el directorio de destino exista y luego extraemos todo el contenido usando extractTo(). Verificamos el valor devuelto y utilizamos getStatusString() para informar errores antes de cerrar el manejador con close().

Conclusión

En este artículo, hemos discutido cómo trabajar con archivos ZIP en PHP moderno utilizando la clase ZipArchive. Hemos explicado qué son los archivos ZIP y proporcionado un ejemplo práctico de cómo extraer archivos en el disco con un manejo adecuado de errores. Al utilizar ZipArchive en sus aplicaciones PHP, puede gestionar de forma fiable archivos comprimidos para su transferencia o almacenamiento.

Práctica

¿Cuál de las siguientes afirmaciones es/son verdadera(s) sobre la extensión ZIP en PHP?

¿Te resulta útil?

Vista previa dual-run — compárala con las rutas Symfony en producción.