ThinkPHP实现一键清除缓存方法


Posted in PHP onJune 26, 2014

很多的开源cms系统都有一键清除缓存的功能,缓存是为了减轻服务器的压力而产生的,但是同时有缓存的存在也可能使一些数据不能实时更新,对此,我们就来实现一个ThinkPHP的清理缓存的功能。代码如下:

ThinkPHP后台执行的代码:

//获取要清楚的目录和目录所在的绝对路径
 public function cache(){
  ////前台用ajax get方式进行提交的,这里是先判断一下
  if($_POST['type']){
   //得到传递过来的值
   $type=$_POST['type'];
   //将传递过来的值进行切割,我是用“-”进行切割的
   $name=explode('-', $type);
   //得到切割的条数,便于下面循环
   $count=count($name);
   //循环调用上面的方法
   for ($i=0;$i<$count;$i++){
    //得到文件的绝对路径
    $abs_dir=dirname(dirname(dirname(dirname(__FILE__))));
    //组合路径
    $pa=$abs_dir.'indexRuntime';
    $runtime=$abs_dir.'indexRuntime~runtime.php';
    if(file_exists($runtime))//判断 文件是否存在
    {
     unlink($runtime);//进行文件删除
    }
 //调用删除文件夹下所有文件的方法
    $this->rmFile($pa,$name[$i]); 
   }
   //给出提示信息
   $this->ajaxReturn(1,'清除成功',1);
  }else{
   $this->display();
  }
 }
 public function rmFile($path,$fileName){//删除执行的方法
  //去除空格
  $path = preg_replace('/(/){2,}|{}{1,}/','/',$path); 
  //得到完整目录 
  $path.= $fileName;
  //判断此文件是否为一个文件目录
  if(is_dir($path)){
   //打开文件
   if ($dh = opendir($path)){
    //遍历文件目录名称
     while (($file = readdir($dh)) != false){
      //逐一进行删除
      unlink($path.''.$file);
      }
      //关闭文件
      closedir($dh);
    } 
   }
 }

前台页面部分代码如下:

<script type="text/javascript" src="__PUBLIC__/admin/js/jquery.js"></script>
<script type="test/javascript">
$(function(){
$('#button').click(function(){
if(confirm("确认要清除缓存?")){
var $type=$('#type').val();
var $mess=$('#mess');
$.post('__URL__/clear',{type:$type},function(data){
alert("缓存清理成功");
});
}else{
return false;
}
});
});
</script>
PHP 相关文章推荐
简单的用PHP编写的导航条程序
Oct 09 PHP
php数组函数序列之krsort()- 对数组的元素键名进行降序排序,保持索引关系
Nov 02 PHP
php自动加载机制的深入分析
Jun 08 PHP
PHP Session机制简介及用法
Aug 19 PHP
简单谈谈PHP vs Node.js
Jul 17 PHP
PHP简单获取网站百度搜索和搜狗搜索收录量的方法
Aug 23 PHP
php socket通信简单实现
Nov 18 PHP
PHP将身份证正反面两张照片合成一张图片的代码
Apr 08 PHP
PHP基于imagick扩展实现合成图片的两种方法【附imagick扩展下载】
Nov 14 PHP
PHP折半(二分)查找算法实例分析
May 12 PHP
在Laravel5.6中使用Swoole的协程数据库查询
Jun 15 PHP
PhpSpreadsheet设置单元格常用操作汇总
Nov 13 PHP
destoon实现商铺管理主页设置增加新菜单的方法
Jun 26 #PHP
destoon在360浏览器下出现用户被强行注销的解决方法
Jun 26 #PHP
实现在同一方法中获取当前方法中新赋值的session值解决方法
Jun 26 #PHP
PHP执行Curl时报错提示CURL ERROR: Recv failure: Connection reset by peer的解决方法
Jun 26 #PHP
php采用curl访问域名返回405 method not allowed提示的解决方法
Jun 26 #PHP
兼容PHP和Java的des加密解密代码分享
Jun 26 #PHP
Thinkphp使用mongodb数据库实现多条件查询方法
Jun 26 #PHP
You might like
如何使用PHP往windows中添加用户
2006/12/06 PHP
在windows平台上构建自己的PHP实现方法(仅适用于php5.2)
2013/07/05 PHP
jquery $.ajax()取xml数据的小问题解决方法
2010/11/20 Javascript
汉化英文版的Dreamweaver CS5并自动提示jquery
2010/11/25 Javascript
JavaScript高级程序设计(第3版)学习笔记8 js函数(中)
2012/10/11 Javascript
JavaScript字符串对象toUpperCase方法入门实例(用于把字母转换为大写)
2014/10/17 Javascript
深入理解JavaScript系列(39):设计模式之适配器模式详解
2015/03/04 Javascript
jQuery仿gmail实现fixed布局的方法
2015/05/27 Javascript
深入理解JavaScript的React框架的原理
2015/07/02 Javascript
javascript实现简单加载随机色方块
2015/12/25 Javascript
微信小程序 教程之模板
2016/10/18 Javascript
基于Vue2.0的分页组件
2017/03/16 Javascript
vue代理和跨域问题的解决
2018/07/18 Javascript
微信小程序实现页面分享onShareAppMessage
2019/08/12 Javascript
vue+vant-UI框架实现购物车的复选框全选和反选功能
2019/11/05 Javascript
关于vue.js中实现方法内某些代码延时执行
2019/11/14 Javascript
通过js实现压缩图片上传功能
2020/02/25 Javascript
ES5新增数组的实现方法
2020/05/12 Javascript
python Django批量导入数据
2016/03/25 Python
python socket多线程通讯实例分析(聊天室)
2016/04/06 Python
带你了解python装饰器
2017/06/15 Python
对Python3.x版本print函数左右对齐详解
2018/12/22 Python
python字典一键多值实例代码分享
2019/06/14 Python
感知器基础原理及python实现过程详解
2019/09/30 Python
python实现高斯判别分析算法的例子
2019/12/09 Python
keras 解决加载lstm+crf模型出错的问题
2020/06/10 Python
python打开音乐文件的实例方法
2020/07/21 Python
python 匿名函数与三元运算学习笔记
2020/10/23 Python
python中Pexpect的工作流程实例讲解
2021/03/02 Python
处理textarea中的换行和空格
2019/12/12 HTML / CSS
如果Session Bean得Remove方法一直都不被调用会怎么样
2012/07/14 面试题
一道Delphi上机题
2012/06/04 面试题
机修工岗位职责
2013/11/24 职场文书
2016年元旦寄语
2015/08/17 职场文书
Python包管理工具pip的15 个使用小技巧
2021/05/17 Python
mysql函数全面总结
2021/11/11 MySQL