ZipArchive::open
(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.1.0)
ZipArchive::open — Открывает ZIP-архив
Описание
Открывает новый или существующий ZIP-архив для чтения, записи или изменения.
Начиная с libzip 1.6.0, пустой файл больше не является корректным архивом.
Список параметров
-
filename -
Имя ZIP-архива для открытия.
-
flags -
Используемый режим открытия файлов.
Возвращаемые значения
-
Коды ошибок -
Возвращает
trueпри успешном завершении или код ошибки.-
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 'ошибка';
}
?>