ZipArchive::getFromIndex
(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.1.0)
ZipArchive::getFromIndex — Returns the entry contents using its index
说明
public ZipArchive::getFromIndex(int
$index
, int $len
= 0, int $flags
= 0): string|falseReturns the entry contents using its index.
参数
-
index
-
Index of the entry
-
len
-
The length to be read from the entry. If
0
, then the entire entry is read. -
flags
-
The flags to use to open the archive. the following values may be ORed to it.
-
ZipArchive::FL_UNCHANGED
-
ZipArchive::FL_COMPRESSED
-
返回值
Returns the contents of the entry on success 或者在失败时返回 false
.
范例
示例 #1 Get the file contents
<?php
$zip = new ZipArchive;
if ($zip->open('test.zip') === TRUE) {
echo $zip->getFromIndex(2);
$zip->close();
} else {
echo 'failed';
}
?>

User Contributed Notes 5 notes
Ruben ¶
7 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 ¶
7 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 ¶
7 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.
备份地址:http://www.lvesu.com/blog/php/ziparchive.getfromindex.php