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

Флаги используемые для открытия архива. Может быть установлено только одно нижеприведённое значение.

  • ZipArchive::FL_UNCHANGED

  • ZipArchive::FL_COMPRESSED

Возвращаемые значения

Возвращает содержимое элемента при успехе или false в случае возникновения ошибки.

Примеры

Пример #1 Получить содержимое файла

<?php
$zip
= new ZipArchive;
if (
$zip->open('test.zip') === TRUE) {
echo
$zip->getFromIndex(2);
$zip->close();
} else {
echo
'ошибка';
}
?>

Смотрите также

add a note add a note

User Contributed Notes 5 notes

up
3
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
up
1
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.
up
0
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.
up
0
matt3k
11 years ago
Note, length is in characters and not bytes.
up
-4
jana.vasseru
17 years ago
Note that getFromIndex returns false for directories.
To Top