ThinkPHP实现一键清除缓存方法

很多的开源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>
(0)

相关推荐

  • PHP清除缓存的几种方法总结

    PHP清除缓存的几种方法总结 现在开发的项目是用tp3.1版本的,在开发过程中我们常常会遇到页面缓存的问题(特别是html的缓存):刷新后还是旧版的数,再刷新下还是旧版数据,慢慢的开始怀疑人生了,哈哈:所以在开发过程中我们又必要每次及时清除缓存. 清除缓存的方法大概有3种(都是实际经历总结): 第一:在项目的配置文件config.php里加入下面两行代码就能避免缓存问题 'TMPL_CACHE_ON' => false,//禁止模板编译缓存 'HTML_CACHE_ON' => false,/

  • php 文件夹删除、php清除缓存程序

    复制代码 代码如下: <?php header('content-type:text/html;charset=utf-8'); function delFile($fpath) { $filesize = array(); $filepath = iconv('gb2312', 'utf-8', $fpath); if (is_dir($fpath)) { if ($dh = opendir($fpath)) { while (($file = readdir($dh)) !== false)

  • ThinkPHP实现一键清除缓存方法

    很多的开源cms系统都有一键清除缓存的功能,缓存是为了减轻服务器的压力而产生的,但是同时有缓存的存在也可能使一些数据不能实时更新,对此,我们就来实现一个ThinkPHP的清理缓存的功能.代码如下: ThinkPHP后台执行的代码: //获取要清楚的目录和目录所在的绝对路径 public function cache(){ ////前台用ajax get方式进行提交的,这里是先判断一下 if($_POST['type']){ //得到传递过来的值 $type=$_POST['type']; //将

  • window.showModalDialog两次加载问题清除缓存方法

    今天遇到这样一件事情, 复制代码 代码如下: var frmHeight = 352; var frmWidth = 508; var frmTop = (window.screen.height - frmHeight) / 2; var frmLeft = (window.screen.width - frmWidth / 2); var url = "ChosePerson.aspx"; var parameter = "dialogHeight:" + fr

  • sqlserver 中一些常看的指标和清除缓存的方法

    如何查看磁盘I/O操作信息 SET STATISTICS IO ON 命令是一个 使 SQL Server 显示有关由 Transact-SQL 语句生成的磁盘活动量的信息. 我们在分析索引性能的时候,会非常有用. 启用了这个属性后,我们在执行 SQL 语句后,会收到类似如下的信息,这有利于我们分析SQL的性能: (3999 row(s) affected) 表 'ChargeCL'.扫描计数 1,逻辑读取 9547 次,物理读取 0 次,预读 0 次,lob 逻辑读取 0 次,lob 物理读取

  • iOS中设置清除缓存功能的实现方法

    绝大多数应用中都存在着清楚缓存的功能,形形色色,各有千秋,现为大家介绍一种最基础的清除缓存的方法.清除缓存基本上都是在设置界面的某一个Cell,于是我们可以把清除缓存封装在某一个自定义Cell中,如下图所示: 具体步骤 使用注意:过程中需要用到第三方库,请提前安装好:SDWebImage.SVProgressHUD. 1. 创建自定义Cell,命名为GYLClearCacheCell 重写initWithStyle:(UITableViewCellStyle)style reuseIdentif

  • Yii2 assets清除缓存的方法

    本文实例讲述了Yii2 assets清除缓存的方法.分享给大家供大家参考,具体如下: use vendor\myVendorName\myPackageName\assets\AppAsset; AppAsset::register($this); 在配置文件中添加: 'components' => [ 'assetManager' => [ 'linkAssets' => true, ], ] 刷新后就可以清除缓存 更多关于Yii相关内容感兴趣的读者可查看本站专题:<Yii框架入

  • ThinkPHP简单使用memcache缓存的方法

    本文实例讲述了ThinkPHP简单使用memcache缓存的方法.分享给大家供大家参考,具体如下: Thinkphp的默认缓存方式是以File方式,在/Runtime/Temp 下生成了好多缓存文件. 服务器装了memcached后想给更改成memecache方式 在Conf/config.php 中添加 'DATA_CACHE_TYPE' => 'Memcache', 'MEMCACHE_HOST' => 'tcp://127.0.0.1:11211', 'DATA_CACHE_TIME'

  • ThinkPHP缓存方法S()概述

    thinkPHP的F方法只能用于缓存简单数据类型,不支持有效期和缓存对象.S()缓存方法支持有效期,又称动态缓存方法,使用示例如下: 复制代码 代码如下: // 使用data标识缓存$Data数据 S('data',$Data);  //前面的是缓存标示,后面的是缓存的数据 复制代码 代码如下: // 缓存$Data数据3600秒 S('data',$Data,3600); 复制代码 代码如下: // 删除缓存数据 S('data',NULL);  //第一个参数时缓存的标识名 复制代码 代码如

  • CodeIgniter启用缓存和清除缓存的方法

    Codeigniter支持缓存技术,以达到最快的速度.尽管CI已经相当高效了,但是网页中的动态内容.主机的内存CPU和数据库读取速度等因素直接影响了网页的加载速度.依靠网页缓存,你的网页可以达到近乎静态网页的加载速度,因为他们将程序输出的结果保存到硬盘上了. 缓存是怎么工作的? CI支持每个页面单独缓存,而且可以设置缓存更新时间.当一个网页第一次被加载的时候,缓存文件将被保存到application/cache文件夹.下次访问的时候,系统就会直接读取缓存文件,然后返回给用户的浏览器.如果缓存文件

  • 各类常见语言清除网页缓存方法汇总

    本文实例汇总了各类常见语言清除网页缓存方法.分享给大家供大家参考.具体实现方法如下: 一般来说,清除缓存我们只需要设置页面为no-cache就可以了,当然像asp,php这种只需要设置Expires操作即可,具体如下. HTML网页: 复制代码 代码如下: <META HTTP-EQUIV="pragma" CONTENT="no-cache"> <META HTTP-EQUIV="Cache-Control" CONTENT=

随机推荐