要检测文件夹,请使用函数 ::getNameIndex
//$zip = ZipArchive::open()
$entry = $zip->getNameIndex($i);
$isDir = (substr($entry, -1, 1) == '/');
感谢 Alex Howansky @ http://stackoverflow.com/a/19299626/2747584
(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 'failed';
}
?>
要检测文件夹,请使用函数 ::getNameIndex
//$zip = ZipArchive::open()
$entry = $zip->getNameIndex($i);
$isDir = (substr($entry, -1, 1) == '/');
感谢 Alex Howansky @ http://stackoverflow.com/a/19299626/2747584
getFromIndex 和 getFromName 都会造成内存泄漏。特别是如果您在长时间运行的循环中使用它们,请注意。即使关闭并重新打开 zip 文件也无济于事。