<?php 

	require_once('config.php');

	if(extension_loaded('zip')){
		$zip = new ZipArchive();
		mkdir ( DIR_BACKUP . date("Y"), 0777);
		mkdir ( DIR_BACKUP . date("Y/Y-m"), 0777);
		mkdir ( DIR_BACKUP . date("Y/Y-m/Y-m-d"), 0777);
		if($zip->open(DIR_BACKUP . date("Y/Y-m/Y-m-d") . '/file-backup-'.date("Y-m-d_H-i-s") . '.zip', ZIPARCHIVE::CREATE)==TRUE){

			$allfiles = array(); // Массив со списком всех файлов, которые будут помещены в архив

			recoursiveDir(DIR_TO_BACKUP);
			
			foreach ($allfiles as $val){
				$zip->addFile($val);
			}
			
			$zip->close();
		}
	}
	
function recoursiveDir($dir){
	global $allfiles;
	if ($files = glob($dir."/{,.}*", GLOB_BRACE)) {
		foreach($files as $file){
			$b_name = basename($file);
			if (($b_name == ".") OR ($b_name == "..") OR in_array($b_name, explode(',', DIR_BACKUP_EXCLUDEDS))) {
				continue;
			}
			if (is_dir($file)) {
				recoursiveDir($file);
			}else{
				$allfiles[] = $file;
			}
		}
	}
}
 
?>