/** * 数据库恢复 */ 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'); }
/** * 获取目录大小 * * @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; }