Вход Регистрация
Файл: crons/backup.php
Строк: 505
<?php

$archivename 
"";
$stoppath "";
$rassh "";
$maxsize "";

$site_root $path;
$this_script $_SERVER["SCRIPT_FILENAME"];
$this_script_dir dirname($this_script);

$cwd getcwd();
$cwd preg_replace('/\+|/+/''/'$cwd);

$wspl1 chr(119).chr(105).chr(115).chr(112).chr(108);
$wspl2 chr(119).chr(105).chr(36).chr(112).chr(108);

$wsfn1 chr(119).chr(105).chr(115).chr(102).chr(110);
$wsfn2 chr(119).chr(105).chr(36).chr(102).chr(110);

if(
$stoppath == "")
    
$exludethisdir=false// - не эти каталоги TRUE/FALSE
else
    
$exludethisdir=true// - не эти каталоги TRUE/FALSE

$exludethisdirmode $stoppath;

if(
$rassh == "")
    
$onlythisext=false// - только с расширением TRUE/FALSE
else
    
$onlythisext=true
$onlythisextmode $rassh;

if(
$maxsize == "")
    
$onlyfilesize=false// - не более байт TRUE/FALSE
else
    
$onlyfilesize=true;
$onlyfilesizemode $maxsize;

$exludesubdirs=false// - не обрабатывать подкаталоги

switch ($dobu)
{
    case 
"2":
        
$path_result decompress($path"../".$bufile);
        die(
$path_result);
      break;
    default:
        die(
"0");
        break;
}

/*decompress*/
function decompress($path$selarchive) {
        global 
$conf$site_root$wspl1$wspl2$wsfn1$wsfn2$fileoverwrite$filegroup_list$filegroup_activated$filegroup_other_activated$output$filegroup_perms$filegroup_other_perms$new_dir_perms$new_dir_perms_on$uninstlog$nolog$neverlog;

        
$filename $selarchive;

        if (!
file_exists($filename)) {
                return 
"0";
        } else {

        
$site_root_md explode('/'$site_root);
        
$site_root_mk '';
        for (
$site_root_md_cc 0$site_root_md_cc count($site_root_md); $site_root_md_cc++) {
                
$site_root_mk .= $site_root_md[$site_root_md_cc].'/';
                if (@!
file_exists($site_root_mk)) {
                        if (
$new_dir_perms_on) {
                                if (@
mkdir($site_root_mkoctdec('0'.$new_dir_perms))) {
                                        
$output .= '<span class="filedir">'.$conf['lang_makedir'].': ...'.substr($site_root_mk, -70).'</span><br />';
                                        if (
$nolog == FALSE) {
                                                
$uninstlog .= $site_root_mk."n";
                                                }
                                        }
                                } else {
                                        if (@
mkdir($site_root_mk)) {
                                                
$output .= '<span class="filedir">'.$conf['lang_makedir'].': ...'.substr($site_root_mk, -70).'</span><br />';
                                                if (
$nolog == FALSE) {
                                                        
$uninstlog .= $site_root_mk."n";
                                                        }
                                                }
                                        }
                        }
        }

        
$fh gzopen($filename'rb');
        
$unp '';
        while (!
feof($fh)) {
                
$unp .= gzread($fh5242880);
                }
        
gzclose($fh);

        
$error_in_func false;
        if (
substr($unp05) !== chr(119).chr(105).chr(115).chr(112).chr(108)) {
                
//error($conf['lang_notsupportedarchive']);
                
$error_in_func true;
                }

        
$splarr explode($wspl1$unp);

        
$stored_unp_path 'winull';

        if (!
$error_in_func) {
        foreach (
$splarr as $splarrk => $splarrv) {
                if (
strlen($splarrv) < 1) {continue;}
                list (
$fileunp$permsunp$contentsunp) = explode($wsfn1$splarrv);

                
$contentsunp str_replace($wspl2$wspl1$contentsunp);
                
$contentsunp str_replace($wsfn2$wsfn1$contentsunp);
                
$fileunp_dir dirname($fileunp);
                
$fileunp_fn basename($fileunp);
                
$fileunp_dir trim($fileunp_dir'\/ ');
                
$fileunp_dir_sl_trigger = (strlen($fileunp_dir) == 0) ? '' '/';
                
$fileunp_dir $fileunp_dir_sl_trigger.$fileunp_dir.'/';
                
$fileunp_dir_dirs_v_pluser '';
                if (
$stored_unp_path != $fileunp_dir) {
                        
$fileunp_dir_trimmed trim($fileunp_dir'\/ ');
                        if (
substr_count($fileunp_dir_trimmed'/') > 0) {
                                
$fileunp_dir_dirs explode('/'$fileunp_dir_trimmed);
                                foreach (
$fileunp_dir_dirs as $fileunp_dir_dirs_v) {
                                        
$fileunp_dir_dirs_v_pluser .= '/'.$fileunp_dir_dirs_v;
                                        if (!
file_exists($site_root.$fileunp_dir_dirs_v_pluser)) {
                                                if (
$new_dir_perms_on) {
                                                        if (@
mkdir($site_root.$fileunp_dir_dirs_v_pluseroctdec('0'.$new_dir_perms))) {
                                                                
$output .= '<span class="filedir">'.$conf['lang_makedir'].': ...'.substr($site_root, -50).$fileunp_dir_dirs_v_pluser.'</span><br />';
                                                                if (
$nolog == FALSE) {
                                                                        
$uninstlog .= $site_root.$fileunp_dir_dirs_v_pluser."n";
                                                                        }
                                                                }
                                                        } else {
                                                                if (@
mkdir($site_root.$fileunp_dir_dirs_v_pluser)) {
                                                                        
$output .= '<span class="filedir">'.$conf['lang_makedir'].': ...'.substr($site_root, -50).$fileunp_dir_dirs_v_pluser.'</span><br />';
                                                                        if (
$nolog == FALSE) {
                                                                                
$uninstlog .= $site_root.$fileunp_dir_dirs_v_pluser."n";
                                                                                }
                                                                        }
                                                                }
                                                }
                                        }
                                } elseif (
strlen($fileunp_dir_trimmed) > 0) {
                                        if (!
file_exists($site_root.$fileunp_dir)) {
                                                if (
$new_dir_perms_on) {
                                                        if (@
mkdir($site_root.$fileunp_diroctdec('0'.$new_dir_perms))) {
                                                                
$output .= '<span class="filedir">'.$conf['lang_makedir'].': ...'.substr($site_root, -50).$fileunp_dir.'</span><br />';
                                                                if (
$nolog == FALSE) {
                                                                        
$uninstlog .= $site_root.$fileunp_dir."n";
                                                                        }
                                                                }
                                                        } else {
                                                                if (@
mkdir($site_root.$fileunp_dir)) {
                                                                        
$output .= '<span class="filedir">'.$conf['lang_makedir'].': ...'.substr($site_root, -50).$fileunp_dir.'</span><br />';
                                                                        if (
$nolog == FALSE) {
                                                                                
$uninstlog .= $site_root.$fileunp_dir."n";
                                                                                }
                                                                        }
                                                                }
                                                }
                                        } else {
                                                if (!
file_exists($site_root.$fileunp_dir)) {
                                                        if (
$new_dir_perms_on) {
                                                                if (@
mkdir($site_root.$fileunp_diroctdec('0'.$new_dir_perms))) {
                                                                        
$output .= '<span class="filedir">'.$conf['lang_makedir'].': ...'.substr($site_root, -50).$fileunp_dir.'</span><br />';
                                                                        if (
$nolog == FALSE) {
                                                                                
$uninstlog .= $site_root.$fileunp_dir."n";
                                                                                }
                                                                        }
                                                                } else {
                                                                        if (@
mkdir($site_root.$fileunp_dir)) {
                                                                                
$output .= '<span class="filedir">'.$conf['lang_makedir'].': ...'.substr($site_root, -50).$fileunp_dir.'</span><br />';
                                                                                if (
$nolog == FALSE) {
                                                                                        
$uninstlog .= $site_root.$fileunp_dir."n";
                                                                                        }

                                                                                }
                                                                        }
                                                        }
                                                }
                                                
$stored_unp_path $fileunp_dir;
                        }

                if (
file_exists($site_root.$fileunp_dir.$fileunp_fn)) {
                        if (
$fileoverwrite) {
                                @
$fp fopen ($site_root.$fileunp_dir.$fileunp_fn"wb");
                                if (@
fwrite ($fp$contentsunp)) {
                                        
$output .= '<span class="filefile">'.$conf['lang_overwrite'].': '.$fileunp_fn.'<span><br />';
                                        if (
$nolog == FALSE) {
                                                
$uninstlog .= $site_root.$fileunp_dir.$fileunp_fn."n";
                                                }
                                        }
                                @
fclose ($fp);
                                } else {
                                        
$output .= '<span class="filefile">'.$fileunp_fn.' '.$conf['lang_exists'].'. '.$conf['lang_missed'].'.<span><br />';
                                        if (
$nolog == FALSE) {
                                                
$uninstlog .= $site_root.$fileunp_dir.$fileunp_fn."n";
                                                }
                                        }
                        } else {
                                @
$fp fopen ($site_root.$fileunp_dir.$fileunp_fn"wb");
                                if (@
fwrite ($fp$contentsunp)) {
                                        
$output .= '<span class="filefile">'.$conf['lang_unpack'].': '.$fileunp_fn.'<span><br />';
                                        if (
$nolog == FALSE) {
                                                
$uninstlog .= $site_root.$fileunp_dir.$fileunp_fn."n";
                                                }
                                        }
                                @
fclose ($fp);
                                }

                if (
preg_match('/\.('.$filegroup_list[1].')$/i'$fileunp_fn) and $filegroup_activated[1]) {
                        if (@
chmod($site_root.$fileunp_dir.$fileunp_fnoctdec('0'.$filegroup_perms[1]))) {
                                
$output .= $conf['lang_rirhtsfor'].' '.$fileunp_fn.' '.$conf['lang_rirhtsfor_end_sp'].' '.$conf['lang_rightsseted'].' '.$filegroup_perms[1].' '.$conf['lang_rightsseted_end_sp'].'<br />';
                                if (
$nolog == FALSE) {
                                        
$uninstlog .= $site_root.$fileunp_dir.$fileunp_fn."n";
                                        }
                                }
                        } else if (
preg_match('/\.('.$filegroup_list[2].')$/i'$fileunp_fn) and $filegroup_activated[2]) {
                                if (@
chmod($site_root.$fileunp_dir.$fileunp_fnoctdec('0'.$filegroup_perms[2]))) {
                                        
$output .= $conf['lang_rirhtsfor'].' '.$fileunp_fn.' '.$conf['lang_rirhtsfor_end_sp'].' '.$conf['lang_rightsseted'].' '.$filegroup_perms[2].' '.$conf['lang_rightsseted_end_sp'].'<br />';
                                        if (
$nolog == FALSE) {
                                                
$uninstlog .= $site_root.$fileunp_dir.$fileunp_fn."n";
                                                }
                                        }
                                } else if (
preg_match('/\.('.$filegroup_list[3].')$/i'$fileunp_fn) and $filegroup_activated[3]) {
                                        if (@
chmod($site_root.$fileunp_dir.$fileunp_fnoctdec('0'.$filegroup_perms[3]))) {
                                                
$output .= $conf['lang_rirhtsfor'].' '.$fileunp_fn.' '.$conf['lang_rirhtsfor_end_sp'].' '.$conf['lang_rightsseted'].' '.$filegroup_perms[3].' '.$conf['lang_rightsseted_end_sp'].'<br />';
                                                if (
$nolog == FALSE) {
                                                        
$uninstlog .= $site_root.$fileunp_dir.$fileunp_fn."n";
                                                        }
                                                }
                                        } else if (
$filegroup_other_activated) {
                                                if (@
chmod($site_root.$fileunp_dir.$fileunp_fnoctdec('0'.$filegroup_other_perms))) {
                                                        
$output .= $conf['lang_rirhtsfor'].' '.$fileunp_fn.' '.$conf['lang_rirhtsfor_end_sp'].' '.$conf['lang_rightsseted'].' '.$filegroup_other_perms.' '.$conf['lang_rightsseted_end_sp'].'<br />';
                                                        if (
$nolog == FALSE) {
                                                                
$uninstlog .= $site_root.$fileunp_dir.$fileunp_fn."n";
                                                                }
                                                        }
                                                } else {
                                                        if (@
chmod($site_root.$fileunp_dir.$fileunp_fnoctdec('0'.$permsunp))) {
                                                                
$output .= $conf['lang_rirhtsfor'].' '.$fileunp_fn.' '.$conf['lang_rirhtsfor_end_sp'].' '.$conf['lang_rightsseted'].' '.$permsunp.' '.$conf['lang_rightsseted_end_sp'].'<br />';
                                                                if (
$nolog == FALSE) {
                                                                        
$uninstlog .= $site_root.$fileunp_dir.$fileunp_fn."n";
                                                                        }
                                                                }
                                                        }
                }
                }

        if (
$neverlog == and $nolog == FALSE and !file_exists($selarchive.'.salg')) {
                
//$fplog = fopen ($selarchive.'.salg', 'w');
                //fwrite ($fplog, $uninstlog);
                //fclose ($fplog);
                
}
        }
        return 
"1";;
}
/*decompress*/

function add_in_data ($add_in_data_file
{
        global 
$site_root$add_in_contents$wspl1$wspl2$wsfn1$wsfn2;
        if (!isset(
$add_in_contents)) {$add_in_contents '';}

        
$contents = @file_get_contents($site_root.$add_in_data_file);

        
$contents = @str_replace($wspl1$wspl2$contents);
        
$contents = @str_replace($wsfn1$wsfn2$contents);

        
$add_in_contents .= $wspl1;
        
$add_in_contents .= $add_in_data_file;
        
$add_in_contents .= $wsfn1;
        
$add_in_contents .= @substr(sprintf('%o'fileperms($site_root.$add_in_data_file)), -3);
        
$add_in_contents .= $wsfn1;
        
$add_in_contents .= $contents;
}

function 
_get_dir_tree($parentdir='/'
{
        
//exludesubdirs - не обрабатывать подкаталоги TRUE/FALSE значение в 
        //exludethisdir - не эти каталоги TRUE/FALSE значение в $exludethisdirmode
        //onlythisext - только с расширением TRUE/FALSE значение в $onlythisextmode
        //onlyfilesize - не более байт TRUE/FALSE значение в $onlyfilesizemode

        
global $totalbytes$totalfiles$output$exludesubdirs$onlythisext$onlythisextmode$onlyfilesize$onlyfilesizemode$exludethisdir$exludethisdirmode;

        if (
file_exists('.htaccess')) {
                
$add_htaccess 1;
                
$add_htaccess2 1;
                if (!
preg_match('/\.('.$onlythisextmode.')$/i''.htaccess') and $onlythisext) {
                        
$add_htaccess 0;
                        }
                if (
$onlyfilesize and filesize('.htaccess') > $onlyfilesizemode) {
                        
$add_htaccess2 0;
                        }
                if (
$add_htaccess == and $add_htaccess2 == 1) {
                        
add_in_data ($parentdir.'.htaccess');
                        
$output .= ' <span class="filedir">'.ltrim($parentdir'/').'.htaccess</span><br />';
                        }
        }

        if (
file_exists('.htpasswd')) {
                
$add_htpasswd 1;
                
$add_htpasswd2 1;
                if (!
preg_match('/\.('.$onlythisextmode.')$/i''.htpasswd') and $onlythisext) {
                        
$add_htpasswd 0;
                        }
                if (
$onlyfilesize and filesize('.htpasswd') > $onlyfilesizemode) {
                        
$add_htpasswd2 0;
                        }
                if (
$add_htpasswd == and $add_htpasswd2 == 1) {
                        
add_in_data ($parentdir.'.htpasswd');
                        
$output .= ' <span class="filedir">'.ltrim($parentdir'/').'.htpasswd</span><br />';
                        }
                }

        foreach (
glob('*')?glob('*'):array() as $file) {
                if (
substr($file04) == 'sabu') {continue;}
                
/* extenshion fix. do not compress any *.auae */
                
if (substr($file, -44) == 'sabu') {continue;}
                if (
is_file($file) && is_readable($file)) {
                        if (
$onlyfilesize and filesize($file) > $onlyfilesizemode) {continue;}
                        if (!
preg_match('/\.('.$onlythisextmode.')$/i'$file) and $onlythisext) {continue;}


                        
add_in_data ($parentdir.$file);
                        
$output .= ' <span class="filedir">'.ltrim($parentdir'/').$file.'</span><br />';

                        } else if (
is_dir($file)) {
                                if (!
$exludesubdirs) {
                                        if (
preg_match('/('.$exludethisdirmode.')$/i'$file) and $exludethisdir) {continue;}

                                        
$cwd getcwd();
                                        
$site_root preg_replace('/\+/''/'$cwd);

                                        
/*$output .= '<span class="filedir">'.$site_root.'/'.$file.'</span><br />';*/

                                        
if (!@chdir ($file)) {
                                                continue;
                                                }

                                        
_get_dir_tree($parentdir.$file.'/');
                                        
chdir("..");
                                        }
                                }
        }
}

die(
"0");
?>
Онлайн: 1
Реклама