(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.1.0)
ZipArchive::open — Abrir un fichero de archivo en formato ZIP
Abre un archivo zip nuevo o existente para leer, escribir o modificar.
Desde libzip 1.6.0, un archivo vacío ya no es un archivo válido.
filename
El nombre del fichero del archivo ZIP para ser abierto.
flags
El modo a utilizar para abrir el archivo.
Error codes
Devuelve TRUE
en caso de éxito o el código de error.
ZipArchive::ER_EXISTS
El fichero ya existe.
ZipArchive::ER_INCONS
Archivo zip inconsistente.
ZipArchive::ER_INVAL
Argumento no válido.
ZipArchive::ER_MEMORY
Falló malloc.
ZipArchive::ER_NOENT
No existe el fichero.
ZipArchive::ER_NOZIP
No es un archivo zip.
ZipArchive::ER_OPEN
No se puede abrir el fichero.
ZipArchive::ER_READ
Error de lectura.
ZipArchive::ER_SEEK
Error de búsqueda.
Ejemplo #1 Abrir y extraer
<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip');
if ($res === TRUE) {
echo 'ok';
$zip->extractTo('test');
$zip->close();
} else {
echo 'falló, código:' . $res;
}
?>
Ejemplo #2 Crear un fichero
<?php
$zip = new ZipArchive;
$res = $zip->open('test.zip', ZipArchive::CREATE);
if ($res === TRUE) {
$zip->addFromString('test.txt', 'el contenido del fichero va aquí');
$zip->addFile('data.txt', 'entryname.txt');
$zip->close();
echo 'ok';
} else {
echo 'falló';
}
?>
Ejemplo #3 Crear un fichero temporal
<?php
$name = tempnam(sys_get_temp_dir(), "FOO");
$zip = new ZipArchive;
$res = $zip->open($name, ZipArchive::OVERWRITE); /* truncate as empty file is not valid */
if ($res === TRUE) {
$zip->addFile('data.txt', 'entryname.txt');
$zip->close();
echo 'ok';
} else {
echo 'failed';
}
?>