(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.1.0)
ZipArchive::addFile — Добавляет в ZIP-архив файл по заданному пути
$filepath
,$entryname
= "",$start
= 0,$length
= ZipArchive::LENGTH_TO_END,$flags
= ZipArchive::FL_OVERWRITEДобавляет в ZIP-архив файл по заданному пути.
Замечание: Для максимальной переносимости, рекомендуется всегда пользоваться прямыми слешами
/
как разделителями директорий в именах файлов.
filepath
Путь к файлу, который требуется добавить.
entryname
Имя файла внутри ZIP-архива. Параметр переопределит параметр filepath
.
start
Начальная позиция для частичного копирования.
length
Длина, которую требуется скопировать при частичном копировании.
Метод использует размер файла,
если указали значение ZipArchive::LENGTH_TO_END
(0).
Метод использует весь файл начиная со значения параметра start
,
если указали значение ZipArchive::LENGTH_UNCHECKED
.
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, PECL-модуль zip 1.18.0 |
Добавили параметр flags .
|
8.3.0, PECL-модуль zip 1.22.1 |
Добавили константу ZipArchive::FL_OPEN_FILE_NOW .
|
8.3.0, PECL-модуль zip 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. Это предотвращает удаление файла, который только что добавили в архив, до того, как PHP разблокирует файл.