Example #1
0
function filesBackup($task)
{
    echo "Files backup with taskID = " . $task['id'] . "\n";
    $archFolder = getTaskFolder($task);
    $target = $task['file-filename'];
    if ($archFolder == '') {
        return 'Error';
    }
    $fileName = $archFolder . "/" . date('Y-m-d*h:i', time()) . ".tar.gz";
    $zip = new ZipArchive();
    $zip->open($fileName, ZipArchive::CREATE | ZipArchive::OVERWRITE);
    $exclude = explode("\n", $task['file-exclude']);
    if (!$exclude[0]) {
        $exclude = array();
    }
    $exclude[] = __workfolder;
    if (is_file($target)) {
        $zip->addFile($target, basename($target));
    } else {
        // Archiving folder
        $files = excludeFiles(getStructFiles($target), $exclude);
        $folders = excludeFiles(getStructFolders($target), $exclude);
        foreach ($folders as $folder) {
            $zip->addEmptyDir(str_replace(addLastSlash($target), '', $folder));
        }
        foreach ($files as $file) {
            $zip->addFile($file, str_replace(addLastSlash($target), '', $file));
        }
        echo "Num files = " . $zip->numFiles . "\n";
        echo "Status = " . $zip->status . "\n";
    }
    $zip->close();
    delOldFiles($archFolder, $task['deep']);
    return 'Ok';
}
function lastSlashFix($url = null)
{
    if ($url !== '/') {
        if (Config::get('app/cut_last_slash') == true) {
            $url = removeLastSlash($url);
        } else {
            $url = addLastSlash($url);
        }
    }
    return $url;
}