ZipArchive::open

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

ZipArchive::openОткрывает ZIP-архив

Описание

publicZipArchive::open(string$filename, int$flags = 0): bool|int

Метод открывает новый или существующий ZIP-архив для чтения, записи или изменения.

Начиная с libzip 1.6.0 метод оценивает пустой файл как недопустимый архив.

Список параметров

filename

Имя ZIP-архива для открытия.

flags

Используемый режим открытия файлов.

Возвращаемые значения

Метод возвращает true в случае успешного выполнения, false или код ошибки из следующих констант:

ZipArchive::ER_EXISTS
Файл уже существует.
ZipArchive::ER_INCONS
Несовместимый ZIP-архив.
ZipArchive::ER_INVAL
Недопустимый аргумент.
ZipArchive::ER_MEMORY
Ошибка динамического выделения памяти.
ZipArchive::ER_NOENT
Нет такого файла.
ZipArchive::ER_NOZIP
Не является ZIP-архивом.
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
'Ошибка';
}
?>
To Top