Zip-Archive werden nicht komprimiert

Jungbluth

Mitglied
Hallo,
ich möchte mir Zip-Archive erstellen und das funktioniert so weit auch ganz gut. Jetzt hab ich jedoch das Problem das diese nicht komprimiert werden.
PHP:
<?php
ini_set("memory_limit","1024M");
ini_set("max_execution_time","3000");
error_reporting(E_ALL);
$exp = strtoupper((string)$_GET["exp"]);
$file_get_contents = json_decode(file_get_contents("https://www.mtgjson.com/json/".$exp.".json"));
$cards = array();

mkdir($exp);
foreach ($file_get_contents->cards as $card){
        if(isset($card->multiverseId)){
            file_put_contents($exp."/".$card->name.".jpg", file_get_contents("https://gatherer.wizards.com/Handlers/Image.ashx?multiverseid=".$card->multiverseId."&type=card"));
            $cards[] = $card->name.".jpg";
        }
    }
$latest = new ZipArchive;
$res_latest = $latest->open("latest.zip", ZipArchive::CREATE);
if ($res_latest === TRUE) { 
    foreach ($cards as $card){
        $latest->addFile($exp."/".$card);
    }
    $latest->setCompressionName($exp, ZipArchive::CM_DEFLATE);
}
$latest->close();
$allsets = new ZipArchive;
$res_allsets = $allsets->open("AllSets.zip");
if ($res_allsets === TRUE) { 
    foreach ($cards as $card){
        $allsets->addFile($exp."/".$card);
    }
    $allsets->setCompressionName($exp, ZipArchive::CM_DEFLATE);
}
$allsets->close();
foreach ($cards as $card){
    unlink($exp."/".$card);
}
rmdir($exp);
 
Ich habe das ein wenig untersucht mit dem Ergebnis, dass die Komprimierung per Default aktiviert ist.
Ich sehe da die Erweiterung ".jpg". JPG-Dateien sind schon komprimiert, so dass der Effekt bei einer erneuten Komprimierung beim Zippen begrenzt ist. Möglicher Weise ist das der Grund dafür, dass Du keine Komprimierung feststellen kannst.
 

Neue Beiträge

Zurück