Soru Php kullanarak gzip dosyasını nasıl ayıklayabilirim veya açabilirim? [çift]


Bu sorunun zaten bir cevabı var:

function uncompress($srcName, $dstName) {
    $sfp = gzopen($srcName, "rb");
    $fp = fopen($dstName, "w");

    while ($string = gzread($sfp, 4096)) {
        fwrite($fp, $string, strlen($string));
    }
    gzclose($sfp);
    fclose($fp);
}

Bu kodu denedim ama bu işe yaramıyor:

İç Sunucu Hatası
  Sunucu bir iç hata veya yanlış yapılandırma ile karşılaştı ve isteğinizi tamamlayamadı. Lütfen sunucu yöneticisi, webmaster@domain.com ile iletişime geçin ve hatanın meydana geldiği zamanı bildirin ve hata yapmış olabileceğiniz herhangi bir şey olabilir. Bu hata hakkında daha fazla bilgi sunucu hata günlüğünde bulunabilir.
Ayrıca, isteği işlemek için bir ErrorDocument kullanmaya çalışırken bir 404 Bulunamadı hatasıyla karşılaşıldı.


25
2018-06-29 16:57


Menşei


"Çalışmıyor" dan çok daha fazlasına ihtiyacımız var. Bu ne işe yarıyor? Hangi hata mesajlarını alıyorsunuz? - meagar♦
Kodunuz iyi görünüyor (verileri 4kb bloklar halinde parçalıyor) bu yüzden RAM üzerinde ışık olmalı. Hangi hata (lar) alıyorsunuz? - Lusitanian
Hiçbir şey almam Sadece dosyalarımın herhangi birini açmam - Farzamtm
Tampon büyüklüğünün bir çok dosya için ne kadar kullanması gerektiğini bilmek istiyorum - Farzamtm


Cevaplar:


Bunu bulmayı deneyin İşte

//This input should be from somewhere else, hard-coded in this example
$file_name = '2013-07-16.dump.gz';

// Raising this value may increase performance
$buffer_size = 4096; // read 4kb at a time
$out_file_name = str_replace('.gz', '', $file_name); 

// Open our files (in binary mode)
$file = gzopen($file_name, 'rb');
$out_file = fopen($out_file_name, 'wb'); 

// Keep repeating until the end of the input file
while (!gzeof($file)) {
    // Read buffer-size bytes
    // Both fwrite and gzread and binary-safe
    fwrite($out_file, gzread($file, $buffer_size));
}

// Files are done, close files
fclose($out_file);
gzclose($file);

53
2017-07-16 19:52