ZipArchive::replaceFile

(PHP >= 8.0.0, PECL zip >= 1.18.0)

ZipArchive::replaceFileReplace file in ZIP archive with a given path

说明

public ZipArchive::replaceFile(
    string $filepath,
    int $index,
    int $start = 0,
    int $length = ZipArchive::LENGTH_TO_END,
    int $flags = 0
): bool

Replace file in ZIP archive with a given path.

注意: 为了最大限度地提高代码可移植性,建议在 ZIP 文件名中使用斜线 (/) 做为目录分隔符。

参数

filepath

The path to the file to add.

index

The index of the file to be replaced, its name is unchanged.

start

For partial copy, start position.

length

For partial copy, length to be copied, if ZipArchive::LENGTH_TO_END (0) the file size is used, if ZipArchive::LENGTH_UNCHECKED the whole file is used (starting from start).

flags

Bitmask consisting of ZipArchive::FL_ENC_GUESS, ZipArchive::FL_ENC_UTF_8, ZipArchive::FL_ENC_CP437, ZipArchive::FL_OPEN_FILE_NOW. The behaviour of these constants is described on the ZIP constants page.

返回值

成功时返回 true, 或者在失败时返回 false

更新日志

版本 说明
8.3.0 / 1.22.1 ZipArchive::FL_OPEN_FILE_NOW was added.
8.3.0 / 1.22.2 ZipArchive::LENGTH_TO_END and ZipArchive::LENGTH_UNCHECKED were added.

示例

This example opens a ZIP file archive test.zip and replaces index 1 entry with /path/to/index.txt.

示例 #1 Open and replace

<?php
$zip
= new ZipArchive;
if (
$zip->open('test.zip') === TRUE) {
$zip->replaceFile('/path/to/index.txt', 1);
$zip->close();
echo
'ok';
} else {
echo
'failed';
}
?>

参见