我需要打开一个ZIP归档文件,检查归档文件内每个文件的大小,并返回一个包含数字值(大小)的数组。我不想解压缩归档文件以检查文件大小。
我自己尝试了很多方法,但是似乎没有任何ZIP函数具有这样的功能,而且我也无法想到任何组合来编写此功能。
我自己尝试了很多方法,但是似乎没有任何ZIP函数具有这样的功能,而且我也无法想到任何组合来编写此功能。
我知道这个问题很旧了,但我希望我的回答能对某些人有所帮助。
以下代码循环遍历test2.zip
文件中的所有文件,并打印它们的名称和以字节为单位的大小。
<?php
$zip = new ZipArchive;
$res = $zip->open('test2.zip');
if ($res) {
$i=0;
while(!empty($zip->statIndex($i)['name']))
{
echo "Filename: ".$zip->statIndex($i)['name']." | Size: ".$zip->statIndex($i)['size']." bytes<br>";
$i++;
}
}
?>
输出:
Filename: main.php | Size: 44 bytes
Filename: test.php | Size: 385 bytes
Filename: test2.json | Size: 35 bytes
Filename: Token.txt | Size: 5 bytes
Filename: trans.png | Size: 95442 bytes
Filename: url_xml.xml | Size: 399 bytes
ZipArchive::statIndex()
就是您要找的。 - mario