Archiv-Statistik mit Größe gepackt und Ungepackt für Zip-Archive mit php und ZipArchive

Flattr this
Tweet this: Archiv-Statistik mit Größe gepackt und Ungepackt für Zip-Archive mit php und ZipArchive
Dent this: Archiv-Statistik mit Größe gepackt und Ungepackt für Zip-Archive mit php und ZipArchive
Tags: PHP, Zip, 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/18

Es sind keine Trackbacks vorhanden.


Kommentare (0)

Es sind noch keine Kommentare vorhanden.

Die Kommentare zu diesem Beitrag sind gesperrt.

You liked it ? Link it on your homepage or blog: