检查ZIP归档文件内部内容的文件大小

6
我需要打开一个ZIP归档文件,检查归档文件内每个文件的大小,并返回一个包含数字值(大小)的数组。我不想解压缩归档文件以检查文件大小。
我自己尝试了很多方法,但是似乎没有任何ZIP函数具有这样的功能,而且我也无法想到任何组合来编写此功能。

2
ZipArchive::statIndex 对你无效吗? - Wolfgang Stengel
1
如果您只需要收集有关归档文件的信息,那么ZipArchive::statIndex()就是您要找的。 - mario
好的,这可能不小心被忽略了,但谢谢,我会尝试将其转换为一个函数。 - aborted
1个回答

9

我知道这个问题很旧了,但我希望我的回答能对某些人有所帮助。
以下代码循环遍历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

1
如果您知道 ZIP 存档内部的确切路径,也可以使用 ZipArchive::statName() - CJ Dennis

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接