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 相关文章推荐
mysql建立外键
Nov 25 PHP
比较全面的PHP数组的使用方法小结
Sep 23 PHP
php压缩HTML函数轻松实现压缩html/js/Css及注意事项
Jan 27 PHP
记录mysql性能查询过程的使用方法
May 02 PHP
php根据日期判断星座的函数分享
Feb 13 PHP
自己写了一个php检测文件编码的函数
Apr 21 PHP
php中 ob_start等函数截取标准输出的方法
Jun 22 PHP
PHP常用技巧汇总
Mar 04 PHP
PHP命名空间和自动加载类
Apr 03 PHP
PHP的curl函数的用法总结
Feb 14 PHP
CI框架教程之优化验证码机制详解【验证码辅助函数】
Apr 16 PHP
PHP实现时间日期友好显示实现代码
Sep 08 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
5种PHP创建数组的实例代码分享
2014/01/17 PHP
php web环境和命令行环境下查找php.ini的位置
2019/07/17 PHP
Thinkphp框架+Layui实现图片/文件上传功能分析
2020/02/07 PHP
图片按比例缩放函数
2006/06/26 Javascript
你的编程语言可以这样做吗?
2006/09/07 Javascript
js 链式延迟执行DOME
2012/01/04 Javascript
玩转jQuery按钮 请告诉我你最喜欢哪些?
2012/01/08 Javascript
点击弹出层效果&amp;弹出窗口后网页背景变暗效果的实现代码
2014/02/10 Javascript
jQuery获得document和window对象宽度和高度的方法
2015/03/25 Javascript
微信小程序 toast 详解及实例代码
2016/11/09 Javascript
详解AngularJS中的表单验证(推荐)
2016/11/17 Javascript
前端分页功能的实现以及原理(jQuery)
2017/01/22 Javascript
bootstrap daterangepicker汉化以及扩展功能
2017/06/15 Javascript
JavaScript面向对象精要(下部)
2017/09/12 Javascript
简化vuex的状态管理方案的方法
2018/06/02 Javascript
Nodejs Express 通过log4js写日志到Logstash(ELK)
2018/08/30 NodeJs
vue-router传参用法详解
2019/01/19 Javascript
详解微信小程序用定时器实现倒计时效果
2019/04/30 Javascript
Vue自定义组件双向绑定实现原理及方法详解
2020/09/03 Javascript
Python使用正则表达式抓取网页图片的方法示例
2017/04/21 Python
Python计时相关操作详解【time,datetime】
2017/05/26 Python
Python使用numpy实现BP神经网络
2018/03/10 Python
python如何将多个PDF进行合并
2019/08/13 Python
使用Keras实现Tensor的相乘和相加代码
2020/06/18 Python
使用Python绘制台风轨迹图的示例代码
2020/09/21 Python
详解pandas赋值失败问题解决
2020/11/29 Python
在html5的Canvas上绘制椭圆的几种方法总结
2013/01/07 HTML / CSS
HTML5学习笔记之html5与传统html区别
2016/01/06 HTML / CSS
网络、C以及其他硬件方面的面试题
2016/08/23 面试题
学习雷锋精神心得体会范文
2014/03/12 职场文书
大课间体育活动方案
2014/03/12 职场文书
中职生求职信
2014/07/01 职场文书
2014年工程工作总结
2014/11/25 职场文书
先进个人评语大全
2015/01/04 职场文书
幼儿园大班教学反思
2016/03/02 职场文书
Python中requests做接口测试的方法
2021/05/30 Python