2024 年日本 PHP 研討會

ZipArchive::getFromIndex

(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.1.0)

ZipArchive::getFromIndex使用索引返回項目內容

說明

public ZipArchive::getFromIndex(int $index, int $len = 0, int $flags = 0): string|false

使用索引返回項目內容。

參數

index

項目的索引

len

要從項目讀取的長度。如果為 0,則讀取整個項目。

flags (旗標)

用於開啟壓縮檔的旗標。以下值可以用 OR 運算子組合。

返回值

成功時返回項目的內容,失敗時返回 false

範例

範例 #1 取得檔案內容

<?php
$zip
= new ZipArchive;
if (
$zip->open('test.zip') === TRUE) {
echo
$zip->getFromIndex(2);
$zip->close();
} else {
echo
'failed';
}
?>

參見

新增註解

使用者貢獻的註解 5 則註解

Ruben
9 年前
使用函式 ::getNameIndex 來偵測資料夾

//$zip = ZipArchive::open()
$entry = $zip->getNameIndex($i);
$isDir = (substr($entry, -1, 1) == '/');

感謝 Alex Howansky @ http://stackoverflow.com/a/19299626/2747584
StanE
9 年前
與 7 年前 "jana.vasseru" 所說的不同,這個方法(現在)不會對資料夾返回 FALSE。似乎沒有辦法判斷一個項目是目錄還是檔案。
poorpal at example dot com
9 年前
getFromIndex 和 getFromName 都會造成記憶體洩漏。尤其是在長時間執行的迴圈中使用它們時要小心。即使關閉並重新開啟 zip 檔案也無濟於事。
matt3k
11 年前
注意,長度是以字元數計算,而不是位元組數。
jana.vasseru
17 年前
請注意,getFromIndex 會針對目錄返回 false。
To Top