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 相关文章推荐
PHP4实际应用经验篇(5)
Oct 09 PHP
模拟SQLSERVER的两个函数:dateadd(),datediff()
Oct 09 PHP
dede3.1分页文字采集过滤规则详说(图文教程)续二
Apr 03 PHP
在smarty模板中使用PHP函数的方法
Apr 23 PHP
php的urlencode()URL编码函数浅析
Aug 09 PHP
php写入数据到CSV文件的方法
Mar 14 PHP
php实现用于验证所有类型的信用卡类
Mar 24 PHP
php简单获取文件扩展名的方法
Mar 24 PHP
记录一次排查PHP脚本执行卡住的问题
Dec 27 PHP
PHP中模糊查询并关联三个select框
Jun 19 PHP
利用laravel+ajax实现文件上传功能方法示例
Aug 13 PHP
PHP中命名空间的使用例子
Mar 22 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方法调用模式与函数调用模式简例
2011/09/20 PHP
PHP包含文件函数include、include_once、require、require_once区别总结
2014/04/05 PHP
php str_replace替换指定次数的方法详解
2017/05/05 PHP
laravel邮件发送的实现代码示例
2020/01/31 PHP
js 获取中文拼音,Select自动匹配字母获取值的代码
2009/09/23 Javascript
JavaScript mapreduce工作原理简析
2012/11/25 Javascript
JavaScript中的数组特性介绍
2014/12/30 Javascript
javascript小数精度丢失的完美解决方法
2016/05/31 Javascript
javascript 中的console.log和弹出窗口alert
2016/08/30 Javascript
Vue.js教程之axios与网络传输的学习实践
2017/04/29 Javascript
JavaScript利用fetch实现异步请求的方法实例
2017/07/26 Javascript
React Native 环境搭建的教程
2017/08/19 Javascript
浅谈vue的踩坑路
2017/08/31 Javascript
jQuery使用bind函数实现绑定多个事件的方法
2017/10/11 jQuery
在vue中使用css modules替代scroped的方法
2018/03/10 Javascript
JS实现根据指定值删除数组中的元素操作示例
2018/08/02 Javascript
vue基础之v-bind属性、class和style用法分析
2019/03/11 Javascript
jquery中为什么能用$操作
2019/06/18 jQuery
Vue 自定义指令实现一键 Copy功能
2019/09/16 Javascript
vue语法自动转typescript(解放双手)
2019/09/18 Javascript
关于vue组件事件属性穿透详解
2019/10/28 Javascript
JS中间件设计模式的深入探讨与实例分析
2020/04/11 Javascript
JavaScript 引用类型实例详解【数组、对象、严格模式等】
2020/05/13 Javascript
jQuery 隐藏/显示效果函数用法实例分析
2020/05/20 jQuery
three.js如何实现3D动态文字效果
2021/03/03 Javascript
Django的session中对于用户验证的支持
2015/07/23 Python
Python 功能和特点(新手必学)
2015/12/30 Python
python保存网页图片到本地的方法
2018/07/24 Python
Python3标准库glob文件名模式匹配的问题
2020/03/13 Python
Html5大文件断点续传实现方法
2015/12/05 HTML / CSS
Lovedrobe官网:英国领先的大码服装品牌
2019/09/19 全球购物
房产买卖委托公证书
2014/04/04 职场文书
离职证明标准格式
2014/09/15 职场文书
教师四风自我剖析材料
2014/09/30 职场文书
财政局个人总结
2015/03/04 职场文书
用position:sticky完美解决小程序吸顶问题的实现方法
2021/04/24 HTML / CSS