Вход Регистрация
Файл: admin/zip.php
Строк: 41
<?php
/**
 * Zip Archive
 *
 * Creates a zip archive of the site
 *
 * @package GetSimple
 * @subpackage Backups
 */

// Setup inclusions
$load['plugin'] = true;


// Include common.php
include('inc/common.php');
login_cookie_check();

// check validity of request
if ($_REQUEST['s'] === $SESSIONHASH) {
    
    
    
# fix from hameau 
    //$timestamp = date('Y-m-d-Hi');
    
$timestamp gmdate('Y-m-d-Hi_s');
    
$zipcreated true;
    
    
set_time_limit (0);
    
ini_set("memory_limit","800M"); 

    
$saved_zip_file GSBACKUPSPATH.'zip/'$timestamp .'_archive.zip';    
    
    
$sourcePath str_replace('/'DIRECTORY_SEPARATORGSROOTPATH);
    if (!
class_exists 'ZipArchive' false)) {
        include(
'inc/ZipArchive.php');
    }
    if (
class_exists 'ZipArchive' false)) {
    
        
$archiv = new ZipArchive();
        
$archiv->open($saved_zip_fileZipArchive::CREATE);
        
$dirIter = new RecursiveDirectoryIterator($sourcePath);
        
$iter = new RecursiveIteratorIterator($dirIter,
                         
RecursiveIteratorIterator::LEAVES_ONLY,
                        
RecursiveIteratorIterator::CATCH_GET_CHILD
                    
);
        
        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;
Онлайн: 3
Реклама