PHP ile dosya bir dizin sıkıştırılması

3 Cevap php

Ben bir veritabanından şeyi dökümü ve bir dosyaya kaydedin bir php komut yedekleme oluşturma. Ben bunu yaparken başarılı olmuştur ama şimdi ben bir dizinde görüntüler yüzlerce almak ve bir basit. Tar.gz dosyası içine sıkıştırmak gerekir.

Bunu yapmak için ve nasıl yapılır en iyi yolu nedir? Ben nereden başlamak için hiçbir fikrim yok.

Şimdiden teşekkürler

3 Cevap

Eğer 5.2 veya üstü PHP kullanıyorsanız, sen-ebil kullanma Zip Library

ve daha sonra satırlar boyunca bir şey:

$images = '/path/to/images';
//this folder must be writeable by the server
$backup = '/path/to/backup';
$zip_file = $backup.'/backup.zip';

if ($handle = opendir($images))  
{
    $zip = new ZipArchive();

    if ($zip->open($zip_file, ZIPARCHIVE::CREATE)!==TRUE) 
    {
        exit("cannot open <$filename>\n");
    }

    while (false !== ($file = readdir($handle))) 
    {
        $zip->addFile('path/to/images/'.$file);
        echo "$file\n";
    }
    closedir($handle);
    echo "numfiles: " . $zip->numFiles . "\n";
    echo "status:" . $zip->status . "\n";
    $zip->close();
    echo 'Zip File:'.$zip_file . "\n";
}

Ayrıca, bu gibi bir şey kullanabilirsiniz:

exec('tar -czf backup.tar.gz /path/to/dir-to-be-backed-up/');

heed the warnings PHP'nin exec() işlevi kullanma hakkında emin olun.

Kolayca bu komutu kullanarak bir klasör gziplemek yapabilirsiniz:

tar -cvzpf backup.tar.gz /path/to/folder

Bu komut phps sistemi () fonksiyonu ile koştu olabilir.

) (Tüm komutları escapeshellarg unutmayın.