ZipArchive::addFile
(PHP 5 >= 5.2.0, PHP 7, PECL zip >= 1.1.0)
ZipArchive::addFile — Добавляет в ZIP-архив файл по указанному пути
Описание
$filename
, string $entryname = null
, int $start = 0
, int $length = 0
, int $flags = ZipArchive::FL_OVERWRITE
) : boolДобавляет в ZIP-архив файл по указанному пути.
Замечание: Для максимальной переносимости, рекомендуется всегда использовать прямые слеши (
/) в качестве разделителя директорий в именах файлов.
Список параметров
-
filename -
Путь к файлу для добавления.
-
entryname -
Имя файла внутри ZIP-архива. Если указано, то переопределит
filename. -
start -
Для частичного копирования начальная позиция.
-
length -
Для частичного копирования - длина копируемого файла, если 0 или -1, используется весь файл (начиная с
start). -
flags -
Битовая маска, состоящая из
ZipArchive::FL_OVERWRITE,ZipArchive::FL_ENC_GUESS,ZipArchive::FL_ENC_UTF_8,ZipArchive::FL_ENC_CP437. Поведение констант описано на странице ZIP-константы.
Возвращаемые значения
Возвращает true в случае успешного завершения или false в случае возникновения ошибки.
Список изменений
| Версия | Описание |
|---|---|
| 8.0.0 / 1.18.0 |
Добавлен параметр flags.
|
Примеры
В данном примере открывается файл 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. Это предотвращает удаление только что добавленного в архив файла до того, как он будет разблокирован.