open($saved_zip_file, ZipArchive::CREATE); $dirIter = new RecursiveDirectoryIterator($sourcePath); $iter = new RecursiveIteratorIterator($dirIter); foreach($iter as $element) { /* @var $element SplFileInfo */ $dir = str_replace($sourcePath, '', $element->getPath()) . DIRECTORY_SEPARATOR; if ( strstr($dir, $GSADMIN.DIRECTORY_SEPARATOR ) || strstr($dir, 'backups'.DIRECTORY_SEPARATOR )) { #don't archive these folders } else if ($element->getFilename() != '..') { // FIX: if added to ignore parent directories if ($element->isDir()) { $archiv->addEmptyDir($dir); } elseif ($element->isFile()) { $file = $element->getPath() . DIRECTORY_SEPARATOR . $element->getFilename(); $fileInArchiv = $dir . $element->getFilename(); // add file to archive $archiv->addFile($file, $fileInArchiv); } } } $archiv->addFile(GSROOTPATH.'.htaccess', '.htaccess' ); $archiv->addFile(GSROOTPATH.'gsconfig.php', 'gsconfig.php' ); // save and close $status = $archiv->close(); if (!$status) { $zipcreated = false; } } else { $zipcreated = false; } if (!$zipcreated) { $zipcreated = archive_targz(); } if (!$zipcreated) { redirect('archive.php?nozip'); } // redirect back to archive page with a success redirect('archive.php?done'); } else { # page accessed directly - send back to archives page redirect('archive.php'); } exit;