ZipArchive::open
(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.1.0)
ZipArchive::open — Open a ZIP file archive
Description
public ZipArchive::open(string $filename, int $flags = 0): bool|int
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
Returns true
on success, or one of the following error codes:
-
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–2021 The PHP Documentation Group
Licensed under the Creative Commons Attribution License v3.0 or later.
https://www.php.net/manual/en/ziparchive.open.php