(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 / 1.22.1 |
Добавлена константа ZipArchive::FL_OPEN_FILE_NOW .
|
8.3.0 / 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 'Ошибка';
}
?>