(PHP >= 8.0.0, PECL zip >= 1.18.0)
ZipArchive::replaceFile — 使用给定路径替换ZIP归档文件中的文件
$filepath,$index,$start = 0,$length = ZipArchive::LENGTH_TO_END,$flags = 0使用给定路径替换ZIP归档文件中的文件。
注意: 为了最大限度地提高可移植性,建议始终使用正斜杠 (
/) 作为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 常量页面中有描述。
| 版本 | 描述 |
|---|---|
| 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,并用/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';
}
?>