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 相关文章推荐
rrmdir php中递归删除目录及目录下的文件
May 15 PHP
PHP FOR MYSQL 代码生成助手(根据Mysql里的字段自动生成类文件的)
Jul 23 PHP
PHP逐行输出(ob_flush与flush的组合)
Feb 04 PHP
PHP中读取照片exif信息的方法
Aug 20 PHP
PHP中大于2038年时间戳的问题处理方案
Mar 03 PHP
Windows下Apache + PHP SESSION丢失的解决过程全纪录
Apr 07 PHP
php实现中文字符截取防乱码方法汇总
Apr 29 PHP
php中static和const关键字用法分析
Dec 07 PHP
PHP使用Redis替代文件存储Session的方法
Feb 15 PHP
Mac下快速搭建PHP开发环境步骤详解
May 05 PHP
Laravel-admin之修改操作日志的方法
Sep 30 PHP
php+layui数据表格实现数据分页渲染代码
Oct 26 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
Pain 全世界最小最简单的PHP模板引擎 (普通版)
2011/10/23 PHP
非常精妙的PHP递归调用与静态变量使用
2012/12/16 PHP
关于更改Zend Studio/Eclipse代码风格主题的介绍
2013/06/23 PHP
JavaScript CSS修改学习第二章 样式
2010/02/19 Javascript
javascript 仿QQ滑动菜单效果代码
2010/09/03 Javascript
Dom在ajax技术中的作用说明
2010/10/25 Javascript
datagrid框架的删除添加与修改
2013/04/08 Javascript
JavaScript对象反射用法实例
2015/04/17 Javascript
实例详解AngularJS实现无限级联动菜单
2016/01/15 Javascript
jquery中live()方法和bind()方法区别分析
2016/06/23 Javascript
JavaScript实现窗口抖动效果
2016/10/19 Javascript
JQuery实现文字无缝滚动效果示例代码(Marquee插件)
2017/03/07 Javascript
微信公众号菜单配置微信小程序实例详解
2017/03/31 Javascript
Angular.js自动化测试之protractor详解
2017/07/07 Javascript
Canvas实现微信红包照片效果
2018/08/21 Javascript
vue组件(全局,局部,动态加载组件)
2018/09/02 Javascript
详解小程序中h5页面onShow实现及跨页面通信方案
2019/05/30 Javascript
Android 自定义view仿微信相机单击拍照长按录视频按钮
2019/07/19 Javascript
[40:06]DOTA2亚洲邀请赛 4.3 突围赛 Liquid vs VGJ.T 第一场
2018/04/04 DOTA
[01:06]DOTA2小知识课堂 Ep.01 TP出门不要忘记帮队友灌瓶哦
2019/12/05 DOTA
详解Python中的array数组模块相关使用
2016/07/05 Python
Pycharm设置界面全黑的方法
2018/05/23 Python
对numpy中shape的深入理解
2018/06/15 Python
Selenium定时刷新网页的实现代码
2018/10/31 Python
详解Python3定时器任务代码
2019/09/23 Python
Janie and Jack美国官网:GAP旗下的高档童装品牌
2019/09/09 全球购物
《晚上的太阳》教学反思
2014/04/23 职场文书
三月学雷锋活动总结
2014/06/26 职场文书
2014年平安建设工作总结
2014/11/19 职场文书
坎儿井导游词
2015/02/09 职场文书
医生辞职信范文
2015/03/02 职场文书
办公经费申请报告
2015/05/15 职场文书
贷款工作证明模板
2015/06/12 职场文书
制定企业培训计划的五大要点!
2019/07/10 职场文书
Python离线安装openpyxl模块的步骤
2021/03/30 Python
草系十大最强宝可梦,纸片人上榜,榜首大家最熟悉
2022/03/18 日漫