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