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 相关文章推荐
将OICQ数据转成MYSQL数据
Oct 09 PHP
php mysql数据库操作类
Jun 04 PHP
php入门学习知识点七 PHP函数的基本应用
Jul 14 PHP
php生成随机颜色的方法
Nov 13 PHP
php自动提交表单的方法(基于fsockopen与curl)
May 09 PHP
php实现背景图上添加圆形logo图标的方法
Nov 17 PHP
CI框架表单验证实例详解
Nov 21 PHP
详解ThinkPHP3.2.3验证码显示、刷新、校验
Dec 29 PHP
php利用imagemagick实现复古老照片效果实例
Feb 16 PHP
php生出随机字符串
Jul 06 PHP
Docker搭建自己的PHP开发环境
Feb 24 PHP
PHP的mysqli_stat()函数讲解
Jan 23 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中simplexml_load_string函数使用说明
2011/01/01 PHP
基于Snoopy的PHP近似完美获取网站编码的代码
2011/10/23 PHP
php生成图片缩略图功能示例
2017/02/22 PHP
Ucren Virtual Desktop V2.0
2006/11/07 Javascript
js中复制行和删除行的操作实例
2013/06/25 Javascript
生成二维码方法汇总
2014/12/26 Javascript
js实现缓冲运动效果的方法
2015/04/10 Javascript
javascript判断变量是否有值的方法
2015/04/20 Javascript
每天一篇javascript学习小结(基础知识)
2015/11/10 Javascript
JSON 必知必会 观后记
2016/10/27 Javascript
JS闭包与延迟求值用法示例
2016/12/22 Javascript
详解VUE的状态控制与延时加载刷新
2017/03/27 Javascript
深入理解Node中的buffer模块
2017/06/03 Javascript
jQuery 中msgTips 顶部弹窗效果实现代码
2017/08/14 jQuery
微信h5静默和非静默授权获取用户openId的方法和步骤
2020/06/08 Javascript
Python提示[Errno 32]Broken pipe导致线程crash错误解决方法
2014/11/19 Python
Python抓取框架 Scrapy的架构
2016/08/12 Python
Python列表推导式、字典推导式与集合推导式用法实例分析
2018/02/07 Python
python实现简单登陆系统
2018/10/18 Python
对python指数、幂数拟合curve_fit详解
2018/12/29 Python
Python3多线程版TCP端口扫描器
2019/08/31 Python
Python中使用threading.Event协调线程的运行详解
2020/05/02 Python
Python制作数据预测集成工具(值得收藏)
2020/08/21 Python
python实现简单的五子棋游戏
2020/09/01 Python
Selenium 安装和简单使用的实现
2020/12/04 Python
详解Pycharm第三方库的安装及使用方法
2020/12/29 Python
英国和爱尔兰的自炊式豪华度假小屋:Rural Retreats
2018/06/08 全球购物
初始化了一个没有run()方法的线程类,是否会出错?
2014/03/27 面试题
广告创意求职信
2014/03/17 职场文书
2014年教师党员公开承诺书
2014/05/28 职场文书
创卫工作总结2015
2015/04/22 职场文书
十八大观后感
2015/06/12 职场文书
中秋联欢会主持词
2015/07/04 职场文书
公司开业致辞
2015/07/29 职场文书
公司安全管理制度范本
2015/08/05 职场文书
2016年班主任新年寄语
2015/08/18 职场文书