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 相关文章推荐
WINDOWS服务器安装多套PHP的另类解决方案
Oct 09 PHP
利用PHP制作简单的内容采集器的代码
Nov 28 PHP
PHP 动态随机生成验证码类代码
Apr 09 PHP
PHP中防止SQL注入方法详解
Dec 25 PHP
Codeigniter检测表单post数据的方法
Mar 21 PHP
php实现根据词频生成tag云的方法
Apr 17 PHP
typecho插件编写教程(六):调用接口
May 28 PHP
php强制用户转向www域名的方法
Jun 19 PHP
thinkPHP中验证码的简单实现方法
Dec 05 PHP
PHP反射实际应用示例
Apr 03 PHP
Yii框架模拟组件调用注入示例
Nov 11 PHP
php微信小程序解包过程实例详解
Mar 31 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
《魔兽世界》惊魂幻象将获得调整
2020/03/08 其他游戏
PHP4实际应用经验篇(8)
2006/10/09 PHP
php判断页面是否是微信打开的示例(微信打开网页)
2014/04/25 PHP
php读取远程gzip压缩网页的方法
2014/12/29 PHP
微信公众平台之快递查询功能用法实例
2015/04/14 PHP
thinkPHP模板中for循环与switch语句用法示例
2016/11/30 PHP
PHP与Web页面交互操作实例分析
2020/06/02 PHP
JQuery扩展插件Validate 5添加自定义验证方法
2011/09/05 Javascript
图片动画横条广告带上下滚动的JS代码
2013/10/25 Javascript
jquery选择器之层级过滤选择器详解
2014/01/27 Javascript
JavaScript实现模仿桌面窗口的方法
2015/07/18 Javascript
Bootstrap安装环境配置教程分享
2016/05/27 Javascript
详解springmvc 接收json对象的两种方式
2016/12/06 Javascript
教你5分钟学会用requirejs(必看篇)
2017/07/25 Javascript
从parcel.js打包出错到选择nvm的全部过程
2018/01/23 Javascript
详解webpack4多入口、多页面项目构建案例
2018/05/25 Javascript
JS实现集合的交集、补集、差集、去重运算示例【ES5与ES6写法】
2019/02/18 Javascript
PHPStorm中如何对nodejs项目进行单元测试详解
2019/02/28 NodeJs
js实现简单掷骰子效果
2019/10/24 Javascript
Vue3不支持Filters过滤器的问题
2020/09/24 Javascript
vue 使用rules对表单字段进行校验的步骤
2020/12/25 Vue.js
[46:20]DOTA2-DPC中国联赛 正赛 PSG.LGD vs LBZS BO3 第二场 1月22日
2021/03/11 DOTA
Python编程之string相关操作实例详解
2017/07/22 Python
python 使用sys.stdin和fileinput读入标准输入的方法
2018/10/17 Python
Python设计模式之抽象工厂模式原理与用法详解
2019/01/15 Python
Python socket处理client连接过程解析
2020/03/18 Python
Python第三方包之DingDingBot钉钉机器人
2020/04/09 Python
使用Keras训练好的.h5模型来测试一个实例
2020/07/06 Python
python线程里哪种模块比较适合
2020/08/02 Python
python线程优先级队列知识点总结
2021/02/28 Python
美国踏板车和轻便摩托车销售网站:Mega Motor Madness
2020/02/26 全球购物
人力资源主管职责范本
2014/03/05 职场文书
金融管理专业求职信
2014/07/10 职场文书
教育合作协议范本
2014/10/17 职场文书
nginx 防盗链防爬虫配置详解
2021/03/31 Servers
原生Js 实现的简单无缝滚动轮播图的示例代码
2021/05/10 Javascript