PHP - Manual: ZipArchive::replaceFile
2025-11-01
(PHP >= 8.0.0, PECL zip >= 1.18.0)
ZipArchive::replaceFile — Replace file in ZIP archive with a given path
$filepath,$index,$start = 0,$length = ZipArchive::LENGTH_TO_END,$flags = 0Replace file in ZIP archive with a given path.
注意: 为了最大限度地提高代码可移植性,建议在 ZIP 文件名中使用斜线 (
/) 做为目录分隔符。
filepathThe path to the file to add.
indexThe index of the file to be replaced, its name is unchanged.
startFor 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.
      
| 版本 | 说明 | 
|---|---|
| 8.3.0, PECL zip 1.22.1 | ZipArchive::FL_OPEN_FILE_NOWwas added. | 
| 8.3.0, PECL zip 1.22.2 | ZipArchive::LENGTH_TO_ENDandZipArchive::LENGTH_UNCHECKEDwere 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';
}
?>官方地址:https://www.php.net/manual/en/ziparchive.replacefile.php