Abre um arquivo compactado ZIP

# ZipArchive::open

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

ZipArchive::open — Abre um arquivo compactado ZIP

### Descrição

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

Abre um arquivo compactado ZIP novo ou existente para leitura, escrita ou modificação.

Desde o libzip 1.6.0, um arquivo vazio não é mais um arquivo compactado válido.

### Parâmetros

`filename`
  O nome do arquivo compactado ZIP a ser aberto.
`flags`

  O modo a ser usado para abrir o arquivo compactado.

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

### Valor Retornado

Retorna `true` em caso de sucesso, `false` ou um dos seguintes códigos de erro em caso de falha:

`ZipArchive::ER_EXISTS`
  Arquivo já existe.
`ZipArchive::ER_INCONS`
  Arquivo compactado inconsistente.
`ZipArchive::ER_INVAL`
  Argumento inválido.
`ZipArchive::ER_MEMORY`
  Falha ao alocar memória.
`ZipArchive::ER_NOENT`
  Arquivo não encontrado.
`ZipArchive::ER_NOZIP`
  Não é um arquivo compactado ZIP.
`ZipArchive::ER_OPEN`
  Não é possível abrir o arquivo.
`ZipArchive::ER_READ`
  Erro de leitura.
`ZipArchive::ER_SEEK`
  Erro de busca.

### Exemplos

Exemplo #1 Abrir e extrair

    <?php
    $zip = new ZipArchive;
    $res = $zip->open('test.zip');
    if ($res === TRUE) {
        echo 'ok';
        $zip->extractTo('test');
        $zip->close();
    } else {
        echo 'falha, código:' . $res;
    }
    ?>

Exemplo #2 Cria um arquivo

    <?php
    $zip = new ZipArchive;
    $res = $zip->open('test.zip', ZipArchive::CREATE);
    if ($res === TRUE) {
        $zip->addFromString('test.txt', 'o conteúdo do arquivo vai aqui');
        $zip->addFile('data.txt', 'entryname.txt');
        $zip->close();
        echo 'ok';
    } else {
        echo 'falhou';
    }
    ?>

Exemplo #3 Cria um arquivo temporário

    <?php
    $name = tempnam(sys_get_temp_dir(), "FOO");
    $zip = new ZipArchive;
    $res = $zip->open($name, ZipArchive::OVERWRITE); /* truncar pois um arquivo vazio não é válido */
    if ($res === TRUE) {
        $zip->addFile('data.txt', 'nomedaentrada.txt');
        $zip->close();
        echo 'ok';
    } else {
        echo 'falhou';
    }
    ?>

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