En caso de que usemos PHP4, necesitaremos la extensión ZZIPlib, pero si usamos PHP5, necesitamos tener instalados los paquetes de ZLIB.
Contenidos
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.