Outils pour utilisateurs

Outils du site


webdev:php:zip

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

webdev:php:zip [22/10/2016 17:46] – créée dolowebdev:php:zip [22/10/2016 19:11] (Version actuelle) dolo
Ligne 1: Ligne 1:
 +====== Compression et décompression d'archives zip via PHP ======
 +[[https://secure.php.net/manual/fr/book.zip.php|Doc]]
  
 +<Code:PHP>
 +<?php
 +// increase script timeout value
 +ini_set("max_execution_time", 300);
 +// create object
 +$zip = new ZipArchive();
 +// open archive
 +if ($zip->open("folder_backup.zip", ZIPARCHIVE::CREATE) !== TRUE)
 +{
 +    die ("Could not open archive");
 +}
 +// initialize an iterator
 +// pass it the directory to be processed
 +$iterator = new RecursiveIteratorIterator(new RecursiveDirectoryIterator("./"));
 +// iterate over the directory
 +// add each file found to the archive
 +foreach ($iterator as $key=>$value)
 +{
 +    if($key != "./.." || $key != "./.")
 +    {
 +        $zip->addFile(realpath($key), $key) or die ("ERROR: Could not add file: $key");
 +    }
 +}
 +// close and save archive
 +
 +echo "--- SAUVEGARDE DU DOSSIER ---<br/>Nombre de fichiers : " . $zip->numFiles . "<br/>";
 +echo "Statut : " . $zip->status . "<br/>";
 +$msg = $zip->close();
 +echo "Archive created successfully. Zip close : ".$msg;
 +?>
 +</Code>
 +
 +Ce code fonctionne bien, mais il créé des fichiers vides _ et __ dans chaque dossier à cause des emplacements "./." et "./..". Il faudrait trouver une solution et ce serait niquel.