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服务器实现多session并发运行
Oct 09 PHP
php的控制语句
Oct 09 PHP
PHP下一个非常全面获取图象信息的函数
Nov 20 PHP
PHP内核探索:变量概述
Jan 30 PHP
PHP利用func_get_args和func_num_args函数实现函数重载实例
Nov 12 PHP
PHP中实现Bloom Filter算法
Mar 30 PHP
php实现向javascript传递数组的方法
Jul 27 PHP
ThinkPHP中Common/common.php文件常用函数功能分析
May 20 PHP
利用php获得flv视频长度的实例代码
Oct 26 PHP
php 与 nginx 的处理方式及nginx与php-fpm通信的两种方式
Sep 28 PHP
Laravel中如何轻松容易的输出完整的SQL语句
Jul 26 PHP
PHP正则表达式之RCEService回溯
Apr 11 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
一个程序下载的管理程序(二)
2006/10/09 PHP
PHP生成迅雷、快车、旋风等软件的下载链接代码实例
2014/05/12 PHP
js 中 document.createEvent的用法
2010/08/29 Javascript
JQuery动态给table添加、删除行 改进版
2011/01/19 Javascript
浅析js中2个等号与3个等号的区别
2013/08/06 Javascript
如何通过javascript操作web控件的自定义属性
2013/11/25 Javascript
Node调试工具JSHint的安装及配置教程
2014/05/27 Javascript
JavaScript获取某年某月的最后一天附截图
2014/06/23 Javascript
node.js中的fs.futimes方法使用说明
2014/12/17 Javascript
jQuery实现设置、移除文本框默认值功能
2015/01/13 Javascript
jQuery实现简单滚动动画效果
2016/04/07 Javascript
Javascript删除指定元素节点的方法
2016/06/21 Javascript
javascript类型系统——undefined和null全面了解
2016/07/13 Javascript
原生JS实现网络彩票投注效果
2016/09/25 Javascript
详解Vue使用命令行搭建单页面应用
2017/05/24 Javascript
Node.js中,在cmd界面,进入退出Node.js运行环境的方法
2018/05/12 Javascript
深入理解JavaScript 中的执行上下文和执行栈
2018/10/23 Javascript
typescript编写微信小程序创建项目的方法
2021/01/29 Javascript
安装Python的web.py框架并从hello world开始编程
2015/04/25 Python
Python实现模拟时钟代码推荐
2015/11/08 Python
Python 元组操作总结
2019/09/18 Python
对tensorflow中tf.nn.conv1d和layers.conv1d的区别详解
2020/02/11 Python
TensorFlow的环境配置与安装教程详解(win10+GeForce GTX1060+CUDA 9.0+cuDNN7.3+tensorflow-gpu 1.12.0+python3.5.5)
2020/06/22 Python
Python tkinter界面实现历史天气查询的示例代码
2020/08/23 Python
IE浏览器单独写CSS样式的几种方法
2014/10/14 HTML / CSS
国外最大的眼镜网站:Coastal
2017/08/09 全球购物
香蕉共和国加拿大官网:Banana Republic加拿大
2018/08/06 全球购物
澳大利亚珠宝商:Shiels
2019/10/06 全球购物
会计实习自我鉴定
2013/12/04 职场文书
体育专业学生自我评价范文
2014/01/17 职场文书
小学老师寄语大全
2014/04/04 职场文书
槐乡的孩子教学反思
2014/04/27 职场文书
2015年上半年物业工作总结
2015/03/30 职场文书
2015年设计师个人工作总结
2015/04/25 职场文书
网络研修心得体会
2016/01/08 职场文书
MySQL学习必备条件查询数据
2022/03/25 MySQL