Файл: admin/backup/files.php
Строк: 83
<?php
include '../../engine/includes/start.php';
if (!$creator){
Core::stop();
}
$set['title'] = 'Резервное копирование файлов';
require incDir . 'head.php';
//@set_time_limit(20);
echo '<div class="menu_razd">Выбор файлов</div>';
echo '<div class="post"><img src="/style/users/icons/admin_man_on.png"/> <a href="/pages/user.php?id=2">Система</a><br />Резервное копирование долгий и ресурсоемкий процесс, если бекап не создается, раскоментируйте 9-строку <b>set_time_limit(20);</b>. На бесплатных хостингах, резервное копирование является платным, на платных нет смысла делать =)</div>';
if (Core::form('search_bom')){
$dir = dirname(H);
function recursive_dir($dir)
{
$arr = null;
$char = "xEFxBBxBF";
$find = 0;
foreach (new DirectoryIterator($dir) as $fileInfo){
if ($fileInfo->isDot()){
continue;
}
if ($fileInfo->isDir()){
$find += recursive_dir($fileInfo->getPathname());
}
elseif ($fileInfo->isFile()){
//$arr .= '|' . $fileInfo->getPathname();
$file = new SplFileObject($fileInfo->getPathname());
$file->setMaxLineLen(4);
$data = $file->fgets();
if ($char === $data){
Core::msg_show('Обнаружен BOM в файле ' . $fileInfo->getPathname());
$find++;
}
$file->fseek(0);
}
}
return $find;
}
$res = recursive_dir(H);
if ($res == 0)
{
Core::msg_show('Файлы с BOM не обнаружены', 'msg');
}
}
$arr = array();
if (isset($_POST['file_zip'])){
foreach ($_POST['file_zip'] as $file){
$arr[] = H . $file;
}
$name = empty($_POST['name']) ? 'Backup_' . mt_rand(12, 1222) : $_POST['name'];
if (is_file(H . 'engine/files/backup/files/' . $name . '.zip') and empty($_POST['delcopy'])){
echo 'Архив ' . $name . '.zip уже есть!<br/><a href="backup.php">Повторить</a>';
require incDir . 'foot.php';
}
elseif (is_file(H . 'engine/files/backup/files/' . $name . '.zip')){
echo 'Архив ' . $name . '.zip заменен<br />';
}
$create = new PclZip(H . 'engine/files/backup/files/' . $name . '.zip'); //var_dump($arr);
//$create -> ($arr, PCLZIP_OPT_REMOVE_PATH, '\');
Core::msg_show($create->create($arr, PCLZIP_OPT_REMOVE_PATH,
H) == 0 ? $create->errorInfo(true) : 'Архив создан!');
unset($create, $file);
}
echo '<form method="post"><input type="text" name="name" size="40" value="Backup__' . date("d_m_y") . '__' . (mt_rand(0, 999)) . '"/><br/>';
$dir = opendir('../../');
echo isset($_GET['get']) ? '<a href="?" class="link">Снять все</a>' : '<a href="?get" class="link">Отметить все</a>';
echo '<div class="link"><label><input type="checkbox" name="search_bom" value="search_bom"/> Найти файлы с BOM сигнатурой</label></div>';
while ($file = readdir($dir)) {
if ($file != '.' && $file != '..'){
echo '
<div class="link"><label>
<input type="checkbox" ' . (isset($_GET['get']) ? 'checked="checked"' : '') . ' name="file_zip[]" value="' . $file . '"/> ' . $file . ' (' . (is_file(H . $file) ? Text::size_data(filesize(H . $file)) : 'папка') . ')
</label></div>';
}
}
closedir($dir);
?>
<div class="post"><input type="checkbox" checked="checked" name="delcopy" value="1"/> Заменить при совпадении имен
</div>
<input type="submit" name="create" value="Архивировать"/></form>
<div class="menu_razd">См. также</div>
<a href='/admin/backup/list.php'>
<div class="link">Список Backup</div>
</a>
<a href='mysql.php'>
<div class="link">Резервное копирование базы данных</div>
</a>
<a href='/admin/'>
<div class="link">Админка</div>
</a>
<?
require incDir . 'foot.php';