ZipArchive::open

(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.1.0)

ZipArchive::openAbrir un fichero de archivo en formato ZIP

Descripción

ZipArchive::open ( string $filename [, int $flags ] ) : mixed

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.

Parámetros

filename

El nombre del fichero del archivo ZIP para ser abierto.

flags

El modo a utilizar para abrir el archivo.

Valores devueltos

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.

Ejemplos

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($nameZipArchive::OVERWRITE); /* truncate as empty file is not valid */
if ($res === TRUE) {
    
$zip->addFile('data.txt''entryname.txt');
    
$zip->close();
    echo 
'ok';
} else {
    echo 
'failed';
}
?>