PHP Conference Japan 2024

ZipArchive::replaceFile

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

ZipArchive::replaceFile使用给定路径替换ZIP归档文件中的文件

描述

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

使用给定路径替换ZIP归档文件中的文件。

注意: 为了最大限度地提高可移植性,建议始终使用正斜杠 (/) 作为ZIP文件名中的目录分隔符。

参数

filepath

要添加的文件的路径。

index

要替换的文件的索引,其名称保持不变。

start

对于部分复制,起始位置。

length

对于部分复制,要复制的长度,如果为ZipArchive::LENGTH_TO_END (0),则使用文件大小;如果为ZipArchive::LENGTH_UNCHECKED,则使用整个文件(从start开始)。

flags

ZipArchive::FL_ENC_GUESSZipArchive::FL_ENC_UTF_8ZipArchive::FL_ENC_CP437ZipArchive::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_ENDZipArchive::LENGTH_UNCHECKED

示例

此示例打开一个ZIP文件存档test.zip,并用/path/to/index.txt替换索引1的条目。

示例 #1 打开并替换

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

参见

添加注释

用户贡献的注释

此页面没有用户贡献的注释。
To Top