ZipArchive::addFile

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

ZipArchive::addFileДобавляет в ZIP-архив файл по указанному пути

Описание

publicZipArchive::addFile(
    string$filepath,
    string$entryname = "",
    int$start = 0,
    int$length = ZipArchive::LENGTH_TO_END,
    int$flags = ZipArchive::FL_OVERWRITE
): bool

Добавляет в ZIP-архив файл по указанному пути.

Замечание: Для максимальной переносимости, рекомендуется всегда пользоваться прямыми слешами / как разделителями директорий в именах файлов.

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

filepath

Путь к файлу для добавления.

entryname

Имя файла внутри ZIP-архива. Если указано, то переопределит параметр filepath.

start

Начальная позиция для частичного копирования.

length

Длина, которая должна быть скопирована при выполнении операции частичного копирования, если указано значение ZipArchive::LENGTH_TO_END (0), будет использован размер файла, если указано значение ZipArchive::LENGTH_UNCHECKED, будет использован весь файл (начиная со значения параметра start).

flags

Битовая маска, состоящая из значений: ZipArchive::FL_OVERWRITE, ZipArchive::FL_ENC_GUESS, ZipArchive::FL_ENC_UTF_8, ZipArchive::FL_ENC_CP437, ZipArchive::FL_OPEN_FILE_NOW. Поведение констант описано на странице ZIP-константы.

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

Возвращает true в случае успешного выполнения или false, если возникла ошибка.

Список изменений

ВерсияОписание
8.0.0 / 1.18.0 Добавлен параметр flags.
8.3.0 / 1.22.1 Добавлена константа ZipArchive::FL_OPEN_FILE_NOW.
8.3.0 / 1.22.2 Добавлены константы, задающие значение длины: ZipArchive::LENGTH_TO_END и ZipArchive::LENGTH_UNCHECKED.

Примеры

В данном примере открывается файл ZIP-архива test.zip и в него добавляется файл /path/to/index.txt под именем newname.txt.

Пример #1 Открыть и добавить

<?php
$zip
= new ZipArchive;
if (
$zip->open('test.zip') === TRUE) {
$zip->addFile('/path/to/index.txt', 'newname.txt');
$zip->close();
echo
'готово';
} else {
echo
'ошибка';
}
?>

Примечания

Замечание:

В процессе добавления файла в архив, PHP заблокирует файл. Разблокировка произойдёт только после закрытия объекта ZipArchive, путём вызова ZipArchive::close() или уничтожения объекта ZipArchive. Это предотвращает удаление только что добавленного в архив файла до того, как он будет разблокирован.

Смотрите также

To Top