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 mssql 日期出现中文字符的解决方法
Mar 10 PHP
PHP生成网页快照 不用COM不用扩展.
Feb 11 PHP
PHP序列号生成函数和字符串替换函数代码
Jun 07 PHP
根据中文裁减字符串函数的php代码
Dec 03 PHP
php表单请求获得数据求和示例
May 15 PHP
Codeigniter实现多文件上传并创建多个缩略图
Jun 12 PHP
浅析PHP文件下载原理
Dec 25 PHP
php对文件进行hash运算的方法
Apr 03 PHP
如何使用php实现评委评分器
Jul 31 PHP
PHP实现的构造sql语句类实例
Feb 03 PHP
PHP读取大文件的几种方法介绍
Oct 27 PHP
Laravel获取当前请求的控制器和方法以及中间件的例子
Oct 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
Sony CFR 320 修复改造
2020/03/14 无线电
PHP脚本的10个技巧(5)
2006/10/09 PHP
php时间不正确的解决方法
2008/04/09 PHP
php实现登录tplink WR882N获取IP和重启的方法
2016/07/20 PHP
33种Javascript 表格排序控件收集
2009/12/03 Javascript
用JS写的一个TableView控件代码
2010/01/23 Javascript
javascript window.open打开新窗口后无法再次打开该窗口问题的解决方法
2014/04/12 Javascript
jQuery实现的调整表格行tr上下顺序
2016/01/10 Javascript
AngularJS指令用法详解
2016/11/02 Javascript
angular forEach方法遍历源码解读
2017/01/25 Javascript
Node.js中的require.resolve方法使用简介
2017/04/23 Javascript
jQuery实现的下雪动画效果示例【附源码下载】
2018/02/02 jQuery
JavaScript 跨域之POST实现方法
2018/05/07 Javascript
vue-router判断页面未登录自动跳转到登录页的方法示例
2018/11/04 Javascript
JavaScript实现新年倒计时效果
2018/11/17 Javascript
微信小程序新手教程之页面打开数量限制
2019/03/03 Javascript
node.JS路径解析之PATH模块使用方法详解
2020/02/06 Javascript
vue flex 布局实现div均分自动换行的示例代码
2020/08/05 Javascript
python中精确输出JSON浮点数的方法
2014/04/18 Python
使用pdb模块调试Python程序实例
2015/06/02 Python
Python字符串转换成浮点数函数分享
2015/07/24 Python
Python用Bottle轻量级框架进行Web开发
2016/06/08 Python
Python爬虫包BeautifulSoup学习实例(五)
2018/06/17 Python
PyQt5实现让QScrollArea支持鼠标拖动的操作方法
2019/06/19 Python
详解Python中pyautogui库的最全使用方法
2020/04/01 Python
keras实现VGG16方式(预测一张图片)
2020/07/07 Python
python 邮件检测工具mmpi的使用
2021/01/04 Python
Roxy美国官网:澳大利亚冲浪、滑雪健身品牌
2016/07/30 全球购物
美国健康和保健平台:healtop
2020/07/02 全球购物
完美实现CSS垂直居中的11种方法
2021/03/27 HTML / CSS
财务部绩效考核方案
2014/05/04 职场文书
党建工作经验交流材料
2014/05/25 职场文书
送温暖献爱心活动总结
2014/07/08 职场文书
营业员岗位职责范本
2015/04/14 职场文书
开会通知短信大全
2015/04/20 职场文书
python基于机器学习预测股票交易信号
2021/05/25 Python