Salve a tutti!
Mi sto imbattendo in un contesto a me abbastanza nuovo...la creazione di file archivio (quindi backup) a partire da un elenco di file PDF presenti sul server.
Il problema è questo: eseguire un backup dei dati. Quando l'aministratore clicca sul link apposito parte lo script che deve leggere tutti i file presenti nella cartella "/file_pdf/", e per ognuno dei file lo legge e lo scrive in un file archivio bz2, il quale può essere scaricato via HTTP e messo nella cartella "/file_pdf/backup/".
Ho fatto lo script, e funziona, ma il risultato finale è stato che ho un file XXX.bz2 (l'archivio) con dentro un unico file senza estensione...e non una lista di file pdf ...
come posso fare a dire alle funzioni bzip2 di "chiudere" un file per cominciare un altro, in modo che siano leggibili separatamente?

In pratica devo simulare (lato server e in maniera del tutto automatica ed indipendente) la funzione "Add to zip file..." che prende quell'elenco di file e li mette dentro ad un file compresso (spesso .zip).

Ringrazio in anticipo.
Fabrizio.

P.S.: visto che sono per l'open source...vi posto il codice che ho scritto...in modo che possiarte rendervi conto di quello che ho fatto...e magari di cosa non ho fatto
Codice PHP:
class Backup {
    var 
$arrayFile;
    var 
$fileBZ2;
    
    function 
Backup() {
        
$this->arrayFile = array();
        
$connDB = new ConnessioneDB();
        
$res $connDB->query("SELECT file FROM chiamate WHERE file<>'' ORDER BY file ASC;");
        
$i=0;
        while (
$fetch $connDB->fetchObject($res)) {
            
$this->arrayFile[$i] = $fetch->file;
            
$i++;
        }
        
print_r($this->arrayFile);
    }
    function 
getCount() { return count($this->arrayFile); }
    function 
backupFiles() {
        
$dataOra = new DataOraSQL(getdate());
        
$dataOraSQL substr(str_replace(":""-"str_replace(" ""_"$dataOra->codificaDataOra())),0,count($dataOra->codificaDataOra())-4);
        foreach (
$this->arrayFile as $file) {
            
$fileCompleto "../file_pdf/".$file;
            
$outCompleto "../file_pdf/backup/".$dataOraSQL.".bz2";
            if (!
file_exists ($fileCompleto) || !is_readable ($fileCompleto))
                return 
false;
            if ((!
file_exists ($outCompleto) && !is_writeable (dirname ($outCompleto)) || (file_exists($outCompleto) && !is_writable($outCompleto)) ))
                return 
false;
            
$in_file fopen ($fileCompleto"rb");
            
$out_file bzopen ($outCompleto"wb");
            while (!
feof ($in_file)) {
                
$buffer fgets ($in_file4096);
                
bzwrite ($out_file$buffer4096);
            }
        }
        
fclose ($in_file);
        
bzclose ($out_file);
        
$this->fileBZ2 $dataOraSQL.".bz2";
        return 
true;
    }
    function 
getFileBZ2() { return $this->fileBZ2; }

notate che dentro al codice ho usato due classi mie (ConnessioneDB e DataOra) ma si può capire facilmente a cosa servano...... :berto:

Ciao ciao!!