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/2747584ZipArchive::getFromIndex
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
ZipArchive::getFromIndex
Референца за `ziparchive.getfromindex.php` со подобрена типографија и навигација.
ZipArchive::getFromIndex
(PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.1.0)
ZipArchive::getFromIndex — Ги враќа содржините на записот користејќи го неговиот индекс
= NULL
Ги враќа содржините на записот користејќи го неговиот индекс.
Параметри
index-
Функцијата добива информации за записот дефиниран со неговиот индекс.
len-
Враќа содржината на записот користејќи го неговото име.
0Должината што треба да се прочита од записот. Ако flags-
Знаменцата што треба да се користат за отворање на архивата. следните вредности може да се комбинираат со него.
Вратени вредности
Знаменцата што треба да се користат за наоѓање на записот. Следните вредности може да се комбинираат со OR. false при неуспех.
Примери
Враќа содржината на записот при успех или
<?php
$zip = new ZipArchive;
if ($zip->open('test.zip') === TRUE) {
echo $zip->getFromIndex(2);
$zip->close();
} else {
echo 'failed';
}
?>Види Исто така
- (PHP 5 >= 5.2.0, PHP 7, PHP 8, PECL zip >= 1.1.0) - Ги враќа содржините на записот користејќи го неговото име
Белешки од корисници 5 белешки
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.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.