Exemplo n.º 1
0
 /**
  * 数据库恢复
  */
 public function db_restoreOp()
 {
     $lang = Uk86Language::uk86_getLangContent();
     /**
      * 删除
      */
     if ($_POST['form_submit'] == 'ok') {
         if (!empty($_POST['dir_name']) && is_array($_POST['dir_name'])) {
             $dir = BASE_ROOT_PATH . DS . 'sql_back';
             foreach ($_POST['dir_name'] as $k => $v) {
                 if (file_exists(BASE_ROOT_PATH . DS . 'sql_back' . DS . $v)) {
                     $file_list = array();
                     uk86_readFileList($dir . DS . $v, $file_list);
                     /**
                      * 删除文件
                      */
                     if (is_array($file_list)) {
                         foreach ($file_list as $k_file => $v_file) {
                             @unlink($dir . DS . $v . DS . $v_file);
                         }
                     }
                     /**
                      * 删除目录
                      */
                     @rmdir($dir . DS . $v);
                 } else {
                     uk86_showMessage($lang['db_restore_file_not_exists']);
                 }
             }
             uk86_showMessage($lang['db_restore_del_succ']);
         } else {
             uk86_showMessage($lang['db_restore_choose_file_to_del']);
         }
     }
     $tmp_list = uk86_readDirList(BASE_ROOT_PATH . DS . 'sql_back');
     /**
      * 整理内容
      */
     $dir_list = array();
     if (is_array($tmp_list)) {
         foreach ($tmp_list as $k => $v) {
             $dir_list[$k]['name'] = $v;
             $dir_list[$k]['make_time'] = date('Y-m-d H:i:s', filemtime(BASE_ROOT_PATH . DS . 'sql_back' . DS . $v));
             $dir_list[$k]['size'] = number_format(uk86_getDirSize(BASE_ROOT_PATH . DS . 'sql_back' . DS . $v) / 1024, 2) . 'KB';
             $dir_list[$k]['file_num'] = count(glob(BASE_ROOT_PATH . DS . 'sql_back' . DS . $v . DS . "*.sql"));
         }
     }
     Tpl::output('dir_list', $dir_list);
     Tpl::showpage('db.restore');
 }
Exemplo n.º 2
0
/**
 * 获取目录大小
 *
 * @param string $path 目录
 * @param int $size 目录大小
 * @return int 整型类型的返回结果
 */
function uk86_getDirSize($path, $size = 0)
{
    $dir = @dir($path);
    if (!empty($dir->path) && !empty($dir->handle)) {
        while ($filename = $dir->read()) {
            if ($filename != '.' && $filename != '..') {
                if (is_dir($path . DS . $filename)) {
                    $size += uk86_getDirSize($path . DS . $filename);
                } else {
                    $size += filesize($path . DS . $filename);
                }
            }
        }
    }
    return $size ? $size : 0;
}