使用函式 ::getNameIndex 來偵測資料夾
//$zip = ZipArchive::open()
$entry = $zip->getNameIndex($i);
$isDir = (substr($entry, -1, 1) == '/');
感謝 Alex Howansky @ http://stackoverflow.com/a/19299626/2747584
(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.1.0)
ZipArchive::getFromIndex — 使用索引返回項目內容
使用索引返回項目內容。
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';
}
?>
使用函式 ::getNameIndex 來偵測資料夾
//$zip = ZipArchive::open()
$entry = $zip->getNameIndex($i);
$isDir = (substr($entry, -1, 1) == '/');
感謝 Alex Howansky @ http://stackoverflow.com/a/19299626/2747584
getFromIndex 和 getFromName 都會造成記憶體洩漏。尤其是在長時間執行的迴圈中使用它們時要小心。即使關閉並重新開啟 zip 檔案也無濟於事。