ZipArchive::getFromIndex
(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 '失敗';
}
?>
+add a note
User Contributed Notes 5 notes
Ruben ¶
9 years ago
For detecting folders use function ::getNameIndex:
//$zip = ZipArchive::open()
$entry = $zip->getNameIndex($i);
$isDir = (substr($entry, -1, 1) == '/');
Thanks to Alex Howansky @ http://stackoverflow.com/a/19299626/2747584
StanE ¶
10 years ago
Unlike what "jana.vasseru" said 7 years ago, this method does not return FALSE for folders (anymore?). It seems that there is no way to find out if an entry is a directory of file.
poorpal at example dot com ¶
9 years ago
both getFromIndex and getFromName leak memory. Beware specially if you use them inside a long running loop. Even closing and re-opening the zip file doesn't help.