PHPKonf 2020 Online

ZipArchive::getFromIndex

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

ZipArchive::getFromIndexReturns the entry contents using its index

Descrição

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

Returns the entry contents using its index.

Parâmetros

index

Index of the entry

length

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

Valor Retornado

Returns the contents of the entry on success ou FALSE em caso de falha.

Exemplos

Exemplo #1 Get the file contents

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

Veja Também

add a note add a note

User Contributed Notes 5 notes

up
2
StanE
5 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.
up
1
poorpal at example dot com
5 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.
up
2
Ruben
5 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
up
0
matt3k
7 years ago
Note, length is in characters and not bytes.
up
-4
jana.vasseru
13 years ago
Note that getFromIndex returns false for directories.
To Top