ZipArchive::open

Open a ZIP file archive

&reftitle.description; public ``bool``int```ZipArchive::open` `string` `filename` `int` `flags` 0

Opens a new or existing zip archive for reading, writing or modifying.

Since libzip 1.6.0, a empty file is not a valid archive any longer.

&reftitle.parameters;

`filename`

- The file name of the ZIP archive to open.

`flags`

- The mode to use to open the archive.

  - `ZipArchive::OVERWRITE`

  - `ZipArchive::CREATE`

  - `ZipArchive::RDONLY`

  - `ZipArchive::EXCL`

  - `ZipArchive::CHECKCONS`

&reftitle.returnvalues;

Returns &true; on success, &false; or one of the following error codes on error:

`ZipArchive::ER_EXISTS`

- File already exists.

`ZipArchive::ER_INCONS`

- Zip archive inconsistent.

`ZipArchive::ER_INVAL`

- Invalid argument.

`ZipArchive::ER_MEMORY`

- Malloc failure.

`ZipArchive::ER_NOENT`

- No such file.

`ZipArchive::ER_NOZIP`

- Not a zip archive.

`ZipArchive::ER_OPEN`

- Can't open file.

`ZipArchive::ER_READ`

- Read error.

`ZipArchive::ER_SEEK`

- Seek error.

&reftitle.examples;

### Open and extract

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

### Create an archive

    <?php
    $zip = new ZipArchive;
    $res = $zip->open('test.zip', ZipArchive::CREATE);
    if ($res === TRUE) {
        $zip->addFromString('test.txt', 'file content goes here');
        $zip->addFile('data.txt', 'entryname.txt');
        $zip->close();
        echo 'ok';
    } else {
        echo 'failed';
    }
    ?>

### Create an temporary archive

    <?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';
    }
    ?>