open($chemin . $nomFichier, ZipArchive::CREATE | ZipArchive::OVERWRITE)!==TRUE) {
exit("Impossible d'ouvrir le fichier " . $chemin . $nomFichier . ".\n");
}
// ajout des fichiers
// chemin complet = data/"pages"/"html ou images"/"tous les fichiers"
$zip->addGlob($chemin . '*/*/*', 0, array(''));
$zip->close();
// pour pouvoir manipuler le fichier depuis filezilla ou ssh
chmod($chemin . $nomFichier, 0666); // écriture 4 chiffres
require('view/backup.php');
}
function restaurer($from)
{
$title = 'Restauration des données';
$chemin = "data/";
$nomFichier = "melaineDATA.zip";
require('view/backup.php');
}
// inutile
function creerMelainePHP()
{
$nomFichier = "melainePHP.zip";
try
{
$Zip = new ZipArchive();
}
catch (Throwable $e) // absence de l'extension zip
{
echo($erreur);
die();
}
if ($Zip->open('data/' . $nomFichier, ZipArchive::CREATE | ZipArchive::OVERWRITE)!==TRUE)
{
exit("Impossible d'ouvrir le fichier " . $nomFichier . ".\n");
}
// fichiers à la racine
$Zip->addGlob('*.php', 0, array(''));
$Zip->addGlob('.htaccess', 0, array(''));
$Zip->addGlob('*.txt', 0, array(''));
// tous les dossiers sauf data et .git
$listeDossiers = array('model', 'view', 'controller', 'public', 'lib');
foreach($listeDossiers as $path)
{
// les deux lignes suivantes me dépassent un peu,
// mais ça marche et c'est comme ça qu'il faut faire
$directory = new RecursiveDirectoryIterator($path);
$iterator = new RecursiveIteratorIterator($directory);
foreach ($iterator as $info)
{
// chemins inutiles . et ..
if($info->getFilename() != "." && $info->getFilename() != "..")
{
//var_dump($info->getPathname());
$Zip->addGlob($info->getPathname(), 0, array(''));
}
}
}
$Zip->close();
chmod('data/' . $nomFichier, 0644); // écriture 4 chiffres (octal)
}