CSS - 层叠上下文(The stacking context)
备份 / 恢复数据库
exec — 执行一个外部程序(在 php 文件所在目录进行执行)
很久以前写的,很多方法是项目中的直接复制粘体用不了,只能提供下思路。
用到执行外部程序的就这一句:
exec("mysql -u$username -p$password $database < $backup_path$backup_name");
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Database extends MY_Controller {
private $backup_path;
public function __construct(){
parent::__construct();
$this->backup_path = dirname($_SERVER['SCRIPT_FILENAME']).DIRECTORY_SEPARATOR.'db_backup'.DIRECTORY_SEPARATOR;
}
public function index(){
$this->loadViewhf('back/database.html');
}
public function list_backup(){
//打开文件夹
$dir_handle = opendir($this->backup_path);
//读取文件夹
$backup_names = array();
while(false !== $file = readdir($dir_handle)){
if ($file == '.' || $file == '..') continue;
// 创建每一行数据
$table_row_map = (object)array(
'backup_name' => $file,
'backup_path' => '~/db_backup'
);
// 加入每一行数据到data
$result['data'][] = $table_row_map;
}
//返回结果
$this->returnResult($result);
}
public function backup(){
// 选择备份路径(网站根目录下的db_backup文件夹)
$backup_path = $this->backup_path;
// 生成备份文件名
$backup_name = date("Y-m-d_H-i-s").'_backup.sql';;
// 进行备份
$username = $this->db->username;
$password = $this->db->password;
$database = $this->db->database;
exec("mysqldump -u$username -p$password $database > $backup_path$backup_name");
// 返回结果
$result['status'] = true;
$this->returnResult($result);
}
public function del_backup(){
// 备份文件名
$backup_name = $this->input->post('backup_name', true);
// 选择备份路径(网站根目录下的db_backup文件夹)
$backup_path = $this->backup_path;
// 删除
if (unlink($backup_path.$backup_name)) {
$result['status'] = true;
}else{
$result['status'] = false;
}
// 返回结果
$this->returnResult($result);
}
public function recover_backup(){
// 备份文件名
$backup_name = $this->input->post('backup_name', true);
// 选择备份路径(网站根目录下的db_backup文件夹)
$backup_path = $this->backup_path;
// 恢复备份
$username = $this->db->username;
$password = $this->db->password;
$database = $this->db->database;
exec("mysql -u$username -p$password $database < $backup_path$backup_name");
// 返回结果
$result['status'] = true;
$this->returnResult($result);
}
}
CSS - 层叠上下文(The stacking context)的更多相关文章
- CSS——关于z-index及层叠上下文(stacking context)
以下内容根据CSS规范翻译. z-index 'z-index'Value: auto | <integer> | inheritInitial: autoApplies to: posi ...
- 层叠上下文(The stacking context)
MDNThe stacking context 层叠上下文是HTML元素的三维概念,这些HTML元素在一条假想的相对于面向(电脑屏幕的)视窗或者网页的用户的z轴上延伸,HTML元素依据其自身属性按照优 ...
- 彻底搞懂CSS层叠上下文、层叠等级、层叠顺序、z-index
前言 最近,在项目中遇到一个关于CSS中元素z-index属性的问题,具体问题不太好描述,总结起来就是当给元素和父元素色设置position属性和z-index相关属性后,页面上渲染的元素层级结果和我 ...
- 带大家认识CSS层叠上下文/层叠等级的区别和意义
什么是“层叠上下文” 层叠上下文(stacking context),是HTML中一个三维的概念.在CSS2.1规范中,每个盒模型的位置是三维的,分别是平面画布上的X轴,Y轴以及表示层叠的Z轴.一般情 ...
- 20190409-层叠の层叠上下文、层叠水平、层叠顺序、z-index、伪元素层叠
写在前面乱七八糟的前言: 此"八卦"的源于,在写下图这个圆滚滚的导航布局时,使用元素及其伪元素加上绝对定位完成,但遇到:before或:after伪元素与元素的层叠顺序,就是伪元素 ...
- 层叠上下文 Stacking Context
层叠上下文 Stacking Context 在CSS2.1规范中,每个盒模型的位置是三维的,分别是平面画布上的x轴,y轴以及表示层叠的z轴.对于每个html元素,都可以通过设置z-index属性来设 ...
- 一篇通俗易懂的CSS层叠顺序与层叠上下文研究
网上有很多这方面的教程,但不是苦涩难懂就是从哪copy过来的,反正很长一段时间我是没看懂,时间长了也没打算去研究了,主要原因是,基本上很少会遇到那些问题(所以说啊,要是没有研究精神的才懒得管它).但自 ...
- 关于stacking context和CSS z-index的总结
HTML中决定元素叠加顺序的CSS属性最有名的应该是z-index了.但是,往往在项目中发现有些情况和我们的预期不太一致.经过研究和学习,总算搞清楚了其中的关系.简单总结如下: 只有Positione ...
- CSS基础:层叠顺序和层叠上下文
简介 在考虑到两个元素可能重叠的情况下,层叠顺序决定了那个元素在前面,那个元素在后面,这是针对普通元素而言.而层叠上下文和块级格式化上下文 (BFC) 一样,基本上也是由一些 CSS 属性创建的,它单 ...
随机推荐
- Slim Span (最小生成树)
题意 求生成树的最长边与最短边的差值的最小值 题解 最小生成树保证每一条边最小,就只要枚举最小边开始,跑最小生成树,最后一个值便是最大值 在枚举最小边同时维护差值最小,不断更新最小值. C++代码 / ...
- git分支/标签操作
git分支类似于某一个模块,等到所有模块开发完毕时,最后聚合在一起形成一个项目.而分支之间一般是不会受影响的. git 分支的基本操作: git branch branchname 表示创建分支,新建 ...
- react 从商品详情页返回到商品列表页,列表自动滚动上次浏览的位置
现状:目前从商品详情页返回到商品列表页,还需要再去请求服务数据,还需要用户再去等待获取数据的过程,这样用户体验非常不好, 遇到的问题: 1:如何将数据缓存, 2:如何获取和保存列表滑动的高度, 3:判 ...
- python 调用dll 动态链接库 结构体参数及回调函数等示例
结构体示例: 这里是 C 代码的部分,主要是结构体的声明和回调函数定义. // 新版本定义 typedef enum { DevCard, DevLocator, DevReader } DevTyp ...
- order by关键字优化
1.ORDER BY子句,尽量使用Index方式排序,避免使用FileSort方式排序 2.建表SQL CREATE TABLE tblA( id int primary key not null a ...
- 认识一下Qt用到的开发工具
http://c.biancheng.net/view/3868.html Qt 不是凭空产生的,它是基于现有工具链打造而成的,它所使用的编译器.链接器.调试器等都不是自己的,Qt 官方只是开发了上层 ...
- CF 937
A #include <bits/stdc++.h> #define PI acos(-1.0) #define mem(a,b) memset((a),b,sizeof(a)) #def ...
- memcpy函数的用法以及实现一个memcpy函数
memcpy的用法 在项目中经常用到memcpy来实现内存的拷贝工作,如下代码片段 memcpy( pData, m_pSaveData_C, iSize * sizeof( unsigned sho ...
- shell中通过读取输入yes no判断下一步如何处理
if [ -d $r_item_rmgit ];then read -p "$r_item_rmgit exit, replace it ...
- java tomcat虚拟目录的深入了解
我们知道,Web网站中的内容(包括网页,图片,音频文件等)一般都存放在App的目录下.但随着网站内容的不断丰富,用户需要把不同层次的内容组织成网站的子目录.我们通常的做法是在网站主目录下新建子目录,并 ...