(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';
}
?>