PHP Conference Japan 2024

ZipArchive::replaceFile

(PHP >= 8.0.0, PECL zip >= 1.18.0)

ZipArchive::replaceFile使用給定路徑替換 ZIP 封存檔中的檔案

說明

public ZipArchive::replaceFile(
    字串 $filepath,
    整數 $index,
    整數 $start = 0,
    整數 (int) $length = ZipArchive::LENGTH_TO_END,
    整數 (int) $flags = 0
): 布林值 (bool)

使用指定路徑的檔案取代 ZIP 封存檔中的檔案。

注意為了最大的可攜性,建議在 ZIP 檔名中始終使用正斜線 (/) 作為目錄分隔符號。

參數

filepath

要新增的檔案路徑。

index

要被取代的檔案索引,其名稱不變更。

start

局部複製的起始位置。

length

局部複製的長度,如果是 ZipArchive::LENGTH_TO_END (0),則使用檔案大小;如果是 ZipArchive::LENGTH_UNCHECKED,則使用整個檔案(從 start 開始)。

flags

ZipArchive::FL_ENC_GUESSZipArchive::FL_ENC_UTF_8ZipArchive::FL_ENC_CP437ZipArchive::FL_OPEN_FILE_NOW 組成的位元遮罩。這些常數的行為在 ZIP 常數 頁面上有說明。

回傳值

成功時回傳 true,失敗時回傳 false

更新日誌

版本 說明
8.3.0, PECL zip 1.22.1 新增了 ZipArchive::FL_OPEN_FILE_NOW
8.3.0, PECL zip 1.22.2 新增了 ZipArchive::LENGTH_TO_ENDZipArchive::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';
}
?>

另請參閱

新增註記

使用者貢獻的註記

此頁面沒有使用者貢獻的註記。
To Top