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