sunucu PHP dosyası sorunu sıkıştırma

1 Cevap

İşte benim kod;

 error_reporting(-1);
    require("zip_min.php");

$f = $_SERVER['DOCUMENT_ROOT'] ."/mp3/allmp3s.zip";
if (!file_exists($f)) {
$zipfile = new zipfile();
$folder = $_SERVER['DOCUMENT_ROOT'] ."/mp3"; 
if (is_dir($folder)) {
 if($dir = opendir ($folder)) {
        while (false !== ($file = readdir($dir))) {
         if($file != ".") {
         if($file != "..") {
            $zipfile -> addFile(file_get_contents($folder."/".$file), $file);
            }
            }
        }
        closedir($dir);
$contents = $zipfile -> file();
if (file_put_contents($f, $contents)) {

print "ok";

} else {
print "error creating file";
}
}
} else {
print "error";
}
} else {
print "file already exists";
}

ben bu komut dosyasını çalıştırdığınızda 10 mp3 dosyaları 100 mb boyutu toplam vardır, ben sadece boş bir sayfa var, hiçbir şey olmuyor. ama boyutu 30-40 mb ile harika çalışıyor.

ben ne yapmalıyım?

çok teşekkürler

1 Cevap

Lütfen zip_min kütüphane bellekte zip kurarsa, o büyük olasılıkla (ini_set('memory_limit', 0) kaldırmak için) komut dosyası için bellek sınırını aşacaktır. Düzenli olarak bu yapıyorsanız, zip kütüphanesi yerine diskte. Zip inşa görmek isteyebilirsiniz. Belleğe her zaman veri 100meg slurp olması, paralel olarak birden çok kullanıcı için bu işi yapıyoruz, özellikle eğer, en herhangi bir sunucu üzerinde zor olacak.

takibine:

, Bu konuda düşünme zip_min zip oluşturmak için bir dosya sıfırdan kullanıyor olsa bile, yine de hala ne olursa olsun bellek 100meg üzerine kadar kullanmaya çalışıyoruz $contents = $zipfile -> file(); neyse, bu yüzden birlikte belleğe Slurping ediyoruz zip dahili nasıl.