Archiv-Statistik mit Größe gepackt und Ungepackt für Zip-Archive mit php und ZipArchive
Zeigt in einer Tabelle die gepackte und ungepackte Groesse jeder Datei im Archiv an sowie die Methode mit der diese Datei gepackt wurde.
<?php
$archivFile = 'archiv.zip';
$archiv = new ZipArchive();
$archiv->open($archivFile);
$i = 0;
$sizeCompressed = 0;
$sizeUncompressed = 0;
// Manche Konstanten sind nur definiert wenn sie auch unterstütz werden
// (z.b. CM_BZIP2)
$modes = array();
$modes[ZIPARCHIVE::CM_DEFAULT] = 'default';
$modes[ZIPARCHIVE::CM_STORE] = 'store';
$modes[ZIPARCHIVE::CM_SHRINK] = 'shrink';
$modes[ZIPARCHIVE::CM_REDUCE_1] = 'reduce 1';
$modes[ZIPARCHIVE::CM_REDUCE_2] = 'reduce 2';
$modes[ZIPARCHIVE::CM_REDUCE_3] = 'reduce 3';
$modes[ZIPARCHIVE::CM_REDUCE_4] = 'reduce 4';
$modes[ZIPARCHIVE::CM_IMPLODE] = 'implode';
$modes[ZIPARCHIVE::CM_DEFLATE] = 'deflate';
$modes[ZIPARCHIVE::CM_DEFLATE64] = 'deflate64';
$modes[ZIPARCHIVE::CM_PKWARE_IMPLODE] = 'pkware implode 1';
//$modes[ZIPARCHIVE::CM_BZIP2] = 'bzip2';
echo '<table>' . PHP_EOL;
echo ' <tr>' . PHP_EOL;
echo ' <td>Name</td>' . PHP_EOL;
echo ' <td>Groesse ungepackt</td>' . PHP_EOL;
echo ' <td>Groesse gepackt</td>' . PHP_EOL;
echo ' <td>Methode</td>' . PHP_EOL;
echo ' </tr>' . PHP_EOL;
while(false !== $archiv->statIndex($i)) {
$stat = $archiv->statIndex($i);
$sizeCompressed += $stat['comp_size'];
$sizeUncompressed += $stat['size'];
$i++;
echo ' <tr>' . PHP_EOL;
echo ' <td>' . $stat['name'] . '</td>' . PHP_EOL;
echo ' <td>' . $stat['size'] . ' bytes</td>' . PHP_EOL;
echo ' <td>' . $stat['comp_size'] . 'bytes</td>' . PHP_EOL;
echo ' <td>';
if (isset($modes[$stat['comp_method']])) {
echo $modes[$stat['comp_method']];
} else {
echo 'unbekannt';
}
echo '</td>' . PHP_EOL;
echo ' </tr>' . PHP_EOL;
}
echo '<table>' . PHP_EOL;
echo '<br /><pre>' . PHP_EOL;
echo 'Anzahl Dateien: ' . $i . '<br />';
echo 'Archivgroesse: ' . filesize($archivFile). '<br />';
echo 'Groesse der Dateien im Archiv: <br />';
echo 'ungepackt: ' . $sizeUncompressed . ' bytes <br />';
echo 'gepackt: ' . $sizeCompressed . ' bytes <br />';
echo '</pre>';
Trackbacks (0)
Trackbackurl: http://www.robo47.net/trackback/snippet/18Es sind keine Trackbacks vorhanden.
You liked it ? Link it on your homepage or blog:



Benjamin Steininger ist Webentwickler auf der Suche nach einem neuen Job und
photographiert sehr gerne. Er beschäftigt sich viel mit dem Internet, PHP, Symfony, Testing und hat einen
Kommentare (0)
Es sind noch keine Kommentare vorhanden.
Die Kommentare zu diesem Beitrag sind gesperrt.