ZipArchive::open

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

ZipArchive::openOpen a ZIP file archive

Description

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

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.

Parameters

filename

The file name of the ZIP archive to open.

flags

The mode to use to open the archive.

Return Values

Error codes

Returns true on success or the error code.

  • 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.

Examples

Example #1 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;
}
?>

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

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

© 1997–2020 The PHP Documentation Group
Licensed under the Creative Commons Attribution License v3.0 or later.
https://www.php.net/manual/en/ziparchive.open.php