ZipArchive::open

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

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

Описание

public ZipArchive::open ( string $filename , int $flags = ? ) : mixed

Открывает новый или существующий 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($nameZipArchive::OVERWRITE); /* усечение, поскольку пустой файл недопустим */
if ($res === TRUE) {
    
$zip->addFile('data.txt''entryname.txt');
    
$zip->close();
    echo 
'готово';
} else {
    echo 
'ошибка';
}
?>