ZipArchive::open

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

ZipArchive::openOpen a ZIP file archive

说明

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, an empty file is not a valid archive any longer.

参数

filename

The file name of the ZIP archive to open.

flags

The mode to use to open the archive.

返回值

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.

示例

示例 #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;
}
?>

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

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