function archiveZip($sFrom, $sTo, $sFilename, $zip = null, $racine = null) { $bNew = 0; if (!$zip) { print "creation zip : {$sTo}/{$sFilename}.zip \n"; $zip = new ZipArchive(); $zip->open($sTo . '/' . $sFilename . '.zip', ZipArchive::CREATE); $bNew = 1; } print " {$sFrom} \n"; if (is_dir($sFrom)) { print " is_dir \n"; print " scandir {$sFrom} \n"; $fichiers = scandir($sFrom); // On enleve . et .. unset($fichiers[0], $fichiers[1]); foreach ($fichiers as $f) { if (is_dir($sFrom . '/' . $f)) { $zip->addEmptyDir($racine . $f); archiveZip($sFrom . '/' . $f, $sTo, $sFilename, $zip, $racine . $f . '/'); } else { print " addFile {$sFrom}/{$f}\n"; if (!$zip->addFile($sFrom . '/' . $f, $racine . $f)) { print " ! erreur \n"; } } } //on ferme if ($bNew) { print "close zip {$sTo}/{$sFilename}.zip \n"; if (!$zip->close()) { print " ! close \n"; } } } }
$r = "{$size} - {$time}"; echo "{ \"file\":\"{$file}.sql\" , \"info\":\"{$r}\" }"; } } if ($_GET['type'] == 'installer') { @unlink("../../../../.backup/{$_GET['file']}"); $file = '../../../../system/installer.zip'; extractZip($file, '../../../../system'); if (!file_exists('../../../../.backup')) { mkdir('../../../../.backup'); } backup_tables('*', '../../../../system/installer', 'data', true); archiveZip('../../../../system/installer', '../../../../system/installer.zip'); $date = md5(date("Ymd:His")); $file = "installer-backup-{$date}.zip"; $c = archiveZip('../../../../', "../../../../.backup/{$file}"); if ($c) { $size = format_size(filesize("../../../../.backup/{$file}")); $time = date("Y/m/d H:i:s", filemtime("../../../../.backup/{$file}")); $r = "{$size} - {$time}"; echo "{ \"file\":\"{$file}\" , \"info\":\"{$r}\" }"; } } if ($_GET['type'] == 'delete') { if ($_GET['act'] == 'installer' || $_GET['act'] == 'db') { @unlink("../../../../.backup/{$_GET['file']}"); } if ($_GET['act'] == 'tables') { @unlink("../../../../.backup/.table/{$_GET['file']}"); } }