(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.1.0)
ZipArchive::open — Открывает ZIP-архив
Метод открывает новый или существующий ZIP-архив для чтения, записи или изменения.
Начиная с libzip 1.6.0 метод оценивает пустой файл как недопустимый архив.
filename
Имя ZIP-архива для открытия.
flags
Используемый режим открытия файлов.
Метод возвращает true
в случае успешного выполнения, false
или код ошибки из следующих констант:
ZipArchive::ER_EXISTS
ZipArchive::ER_INCONS
ZipArchive::ER_INVAL
ZipArchive::ER_MEMORY
ZipArchive::ER_NOENT
ZipArchive::ER_NOZIP
ZipArchive::ER_OPEN
ZipArchive::ER_READ
ZipArchive::ER_SEEK
Пример #1 Открыть и извлечь
<?php
$zip = new ZipArchive();
$res = $zip->open('test.zip');
if ($res === true) {
echo 'Готово';
$zip->extractTo('test');
$zip->close();
} else {
echo 'Ошибка, код:' . $res;
}
?>
Пример #2 Создать архив
<?php
$zip = new ZipArchive();
$res = $zip->open('test.zip', ZipArchive::CREATE);
if ($res === true) {
$zip->addFromString('test.txt', 'содержимое файла');
$zip->addFile('data.txt', 'entryname.txt');
$zip->close();
echo 'Готово';
} else {
echo 'Ошибка';
}
?>
Пример #3 Создать временный архив
<?php
$name = tempnam(sys_get_temp_dir(), "FOO");
$zip = new ZipArchive();
$res = $zip->open($name, ZipArchive::OVERWRITE); /* Усечение, поскольку пустой файл недопустим */
if ($res === true) {
$zip->addFile('data.txt', 'entryname.txt');
$zip->close();
echo 'Готово';
} else {
echo 'Ошибка';
}
?>