检查ZIP存档中内容的文件大小


Check file sizes of content inside ZIP archive

我需要打开一个ZIP档案,检查档案中每个文件的文件大小,并返回一个包含数值(size)的数组。我不希望为了检查文件大小而提取档案。

我自己尝试了很多,但似乎没有一个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