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 数组实例说明
Aug 18 PHP
php中$_SERVER[PHP_SELF] 和 $_SERVER[SCRIPT_NAME]之间的区别
Sep 05 PHP
php Notice: Undefined index 错误提示解决方法
Aug 29 PHP
PHP编码规范的深入探讨
Jun 06 PHP
php类中的各种拦截器用法分析
Nov 03 PHP
PHP向浏览器输出内容的4个函数总结
Nov 17 PHP
PHP递归实现层级树状展开
Apr 01 PHP
PHP Header用于页面跳转时的几个注意事项
Oct 21 PHP
详谈PHP中的密码安全性Password Hashing
Feb 04 PHP
PHP输出多个元素的排列或组合的方法
Mar 14 PHP
php 提交表单 关闭layer弹窗iframe的实例讲解
Aug 20 PHP
laravel利用中间件做防非法登录和权限控制示例
Oct 21 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应用程序来获取Web服务器的状态信息
2006/10/09 PHP
配置最新的PHP加MYSQL服务器
2006/10/09 PHP
php安全开发 添加随机字符串验证,防止伪造跨站请求
2013/02/14 PHP
基于PHP读取csv文件内容的详解
2013/06/18 PHP
一个简单的php加密解密函数(动态加密)
2013/06/19 PHP
php读取大文件示例分享(文件操作类)
2014/04/13 PHP
PHP实现删除字符串中任何字符的函数
2015/08/11 PHP
yii使用bootstrap分页样式的实例
2017/01/17 PHP
Aster vs Newbee BO5 第一场2.19
2021/03/10 DOTA
jquery 插件实现图片延迟加载效果代码
2010/02/06 Javascript
让网页跳转到指定位置的jquery代码非书签
2013/09/06 Javascript
常用的jquery模板插件——jQuery Boilerplate介绍
2014/09/23 Javascript
开源的javascript项目Kissy介绍
2014/11/28 Javascript
在JavaScript中操作数组之map()方法的使用
2015/06/09 Javascript
基于Jquery和CSS3制作数字时钟附源码下载(CSS3篇)
2015/11/24 Javascript
js下将金额数字每三位一逗号分隔
2016/02/19 Javascript
jQuery实现背景弹性滚动的导航效果
2016/06/01 Javascript
[02:48]DOTA2英雄基础教程 暗夜魔王
2013/12/12 DOTA
[03:43]2014DOTA2西雅图国际邀请赛 newbee战队巡礼
2014/07/07 DOTA
Python SQLite3数据库操作类分享
2014/06/10 Python
实例讲解Python中函数的调用与定义
2016/03/14 Python
简单掌握Python中glob模块查找文件路径的用法
2016/07/05 Python
Python中常见的异常总结
2018/02/20 Python
python使用matplotlib模块绘制多条折线图、散点图
2020/04/26 Python
通过python实现弹窗广告拦截过程详解
2019/07/10 Python
python3.7环境下安装Anaconda的教程图解
2019/09/10 Python
Swanson中国官网:美国斯旺森健康产品公司
2021/03/01 全球购物
高中毕业生生活的自我评价
2013/12/08 职场文书
建设办主任四风问题整改思路和措施
2014/09/20 职场文书
党的群众路线对照检查材料思想汇报(学校)
2014/10/04 职场文书
企业党建工作总结2015
2015/05/26 职场文书
导游词之蜀山胜景瓦屋山
2019/11/29 职场文书
解决Go gorm踩过的坑
2021/04/30 Golang
Go标准容器之Ring的使用说明
2021/05/05 Golang
Redis中有序集合的内部实现方式的详细介绍
2022/03/16 Redis
Redis中key的过期删除策略和内存淘汰机制
2022/04/12 Redis