(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 'Ошибка';
}
?>