Abrir un fichero de archivo en formato ZIP

# ZipArchive::open

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

ZipArchive::open — Abrir un fichero de archivo en formato ZIP

### Descripción

public function ZipArchive::open(string `$filename`, int `$flags` = 0): bool|int

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.

  - `ZipArchive::OVERWRITE`
  - `ZipArchive::CREATE`
  - `ZipArchive::RDONLY`
  - `ZipArchive::EXCL`
  - `ZipArchive::CHECKCONS`

### Valores devueltos

Devuelve `true` en caso de éxito, `false` o uno de los siguientes códigos de error en caso 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($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';
    }
    ?>

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open