Home / Programmazione / PHP / Creare file ZIP in PHP
Mattepuffo

Creare file ZIP in PHP

Creare file ZIP in PHP

Come praticamente tutti i linguaggi, anche PHP offre nativamente strumenti per la crezione di file ZIP, attraverso la classe ZipArchive e le vcarie funzioni collegate.

Questa classe ci mette a disposizione già praticamente tutto quello che ci serve.

Le funzione che useremo sono:

  • open -> apre un file ZIP nella modalità indicata
  • addFile -> aggiunge un file all'archivio specificato
  • close -> chiude il file

Abbastanza lineare.

Vediamo un esempio:

$zip = new ZipArchive();
$zip->open('file.zip, ZipArchive::CREATE);
if (file_exists('/path/to/file.txt')) {
   $zip->addFile('/path/to/file.txt', 'nome_che_volete_dentro_zip.txt');
}
$zip->close();

Nella funzione addFile, il primo parametro è obbligatorio, e corrisponde al path del file; il secondo è facoltativo e corrisponde al nome del file dentro l'archivio.

Ovviamente possiamo aggiungere anche più file; ad esempio leggendo tutti i file di una directory con un ciclo:

$zip = new ZipArchive();
$zip->open('file.zip, ZipArchive::CREATE);
foreach($filesInDirectory as $f) {
  if (file_exists($f)) {
     $zip->addFile($f, 'nome_che_volete_dentro_zip.txt');
  }
}
$zip->close();

Giusto per fare un esempio veloce.

Infine vi conviene sempre mettere un controllo sull'esistenza del file (nell'esempio ho usato la funzione file_exists).

Enjoy!