ZipArchive::open
(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.1.0)
Open a ZIP file archive
Description
Opens a new or existing zip archive for reading, writing or modifying.
Since libzip 1.6.0, an empty file is not a valid archive any longer.
When creating a new archive with ZipArchive::CREATE, the file is not actually written to disk until ZipArchive::close is called. Therefore, errors related to the file system (such as permission denied or a non-existent parent directory) will only be reported when calling ZipArchive::close, not when calling this method.
Parameters
filenameThe file name of the ZIP archive to open.
flagsThe mode to use to open the archive.
ZipArchive::OVERWRITEZipArchive::CREATEZipArchive::RDONLYZipArchive::EXCLZipArchive::CHECKCONS
Return Values
Returns true on success, false or one of the following error codes on error:
ZipArchive::ER_EXISTSFile already exists.
ZipArchive::ER_INCONSZip archive inconsistent.
ZipArchive::ER_INVALInvalid argument.
ZipArchive::ER_MEMORYMalloc failure.
ZipArchive::ER_NOENTNo such file.
ZipArchive::ER_NOZIPNot a zip archive.
ZipArchive::ER_OPENCan't open file.
ZipArchive::ER_READRead error.
ZipArchive::ER_SEEKSeek error.
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';
}
?>