(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 / 1.22.1 |
添加了 ZipArchive::FL_OPEN_FILE_NOW 。 |
8.3.0 / 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';
}
?>