(PHP >= 8.0.0, PECL zip >= 1.18.0)
ZipArchive::replaceFile — Заменяет файл в ZIP-архиве файлом по заданному пути
$filepath,$index,$start = 0,$length = ZipArchive::LENGTH_TO_END,$flags = 0Метод заменяет файл в ZIP-архиве файлом по заданному пути.
Замечание: Для максимальной переносимости, рекомендуется всегда пользоваться прямыми слешами
/как разделителями директорий в именах файлов.
filepathПуть к файлу, который требуется добавить.
indexИндекс файла, который заменит метод; метод не изменит название файла.
startНачальная позиция для частичного копирования.
length
Длина, которую требуется скопировать при частичном копировании,
если указали значение ZipArchive::LENGTH_TO_END (0),
метод использует размер файла,
если указали значение ZipArchive::LENGTH_UNCHECKED,
метод использует весь файл начиная со значения параметра start.
flags
Битовая маска из следующих значений:
ZipArchive::FL_ENC_GUESS,
ZipArchive::FL_ENC_UTF_8,
ZipArchive::FL_ENC_CP437,
ZipArchive::FL_OPEN_FILE_NOW.
Поведение констант описывает страница «ZIP-константы».
Функция возвращает true, если выполнилась успешно, или false, если возникла ошибка.
| Версия | Описание |
|---|---|
| 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 и запись с индексом 1 заменяется на файл по пути /path/to/index.txt.
Пример #1 Пример открытия и замены файла
<?php
$zip = new ZipArchive();
if ($zip->open('test.zip') === TRUE) {
$zip->replaceFile('/path/to/index.txt', 1);
$zip->close();
echo 'Готово';
} else {
echo 'Ошибка';
}
?>