Leer y Escribir archivos comprimidos en ZIP con PHP

PHP

En caso de que usemos PHP4, necesitaremos la extensión ZZIPlib, pero si usamos PHP5, necesitamos tener instalados los paquetes de ZLIB.

Creando una instancia de la clase ZipArchive para abrir o crear un nuevo archivo ZIP

Lo primero que tendremos que hacer será crear una instancia de la clase ZipArchive mediante el siguiente comando:

$zip = new ZipArchive();

Si queremos trabajar con un archivo ZIP ya creado, sencillamente lo abrimos usando el método:

$zip->open("./directorio/miArchivo.zip");

Si queremos crear un nuevo archivo ZIP, debemos crearlo y darle un nombre mediante el siguiente método:

$zip->open("./directorio/miArchivo.zip", ZIPARCHIVE::CREATE);

El primer parámetro es la ruta completa al nuevo archivo que deseamos crear y mediante el segundo parámetro definimos que queremos crear un nuevo archivo. El método devuelve true si el archivo a sido creado correctamente y false en caso opuesto.

Una vez hayamos terminado de trabajar con el archivo tendremos que cerrarlo mediante el siguiente comando:

$zip->close();

Ahora veremos diversas tareas que podemos realizar con el archivo abierto, las cuales podremos usar antes de cerrarlo.

Comprimir y añadir nuevos archivos al archivo ZIP

Lo realizamos con el siguiente método:

$zip->addFile("./directorio/archivo.txt", "miArchivoComprimido.txt");

En donde el primer parámetro es la ruta completa al archivo que queremos comprimir y el segundo parámetro es el nombre que deseamos darle al archivo en caso de que queramos que sea distinto. Devuelve true si el archivo ha sido añadido correctamente y false en caso contrario.

Agregar un nuevo directorio vacío dentro del archivo ZIP

Lo creamos con el siguiente método:

$zip->addEmptyDir('nuevoDirectorio');

En donde nuevoDirectorio es el nombre del nuevo directorio que deseamos crear dentro del archivo ZIP. Devuelve true si el directorio ha sido creado correctamente y false en caso contrario.

Extraer el contenido de un archivo ZIP

Para extraer el contenido de un archivo ZIP existente a un directorio usamos el siguiente método:

$zip->extractTo('/mi/directorio/de/destido/');

El parámetro que le pasamos es sencillamente el directorio en donde queremos descomprimir el archivo. El método de extracción devuelve true si la tarea ha sido llevada a cabo correctamente y false en caso contrario.

Agregar una contraseña al archivo ZIP

También es posible agregar una contraseña mediante la función setPassword:

$zip->setPassword('secret');

El método setPassword devuelve true si la contraseña ha sido agregada o modificada correctamente y false en caso contrario.

Funciones adicionales

Estas han sido las funciones básicas, pero existen muchas funciones más que podéis encontrar en la documentación oficial.


Avatar de Edu Lazaro

Edu Lázaro: Ingeniero técnico en informática, actualmente trabajo como desarrollador web y programador de videojuegos.

👋 Hola! Soy Edu, me encanta crear cosas y he redactado esta guía. Si te ha resultado útil, el mayor favor que me podrías hacer es el de compatirla en Twitter 😊

Si quieres conocer mis proyectos, sígueme en Twitter.

Deja una respuesta

“- Hey, Doc. No tenemos suficiente carretera para ir a 140/h km. - ¿Carretera? A donde vamos, no necesitaremos carreteras.”