(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 並將索引 1 的項目替換為 /path/to/index.txt。
範例 #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';
}
?>