当前位置:首页 > CMS教程 > Thinkphp > 列表

ThinkPHP实现一键清除缓存方法

发布:smiling 来源: PHP粉丝网  添加日期:2021-03-03 12:00:04 浏览: 评论:0 

这篇文章主要介绍了ThinkPHP实现一键清除缓存方法,需要的朋友可以参考下,很多的开源cms系统都有一键清除缓存的功能,缓存是为了减轻服务器的压力而产生的,但是同时有缓存的存在也可能使一些数据不能实时更新,对此,我们就来实现一个ThinkPHP的清理缓存的功能。代码如下:

ThinkPHP后台执行的代码:

  1. //获取要清楚的目录和目录所在的绝对路径 
  2.  public function cache(){ 
  3.   ////前台用ajax get方式进行提交的,这里是先判断一下 
  4.   if($_POST['type']){ 
  5.    //得到传递过来的值 
  6.    $type=$_POST['type']; 
  7.    //将传递过来的值进行切割,我是用“-”进行切割的 
  8.    $name=explode('-'$type); 
  9.    //得到切割的条数,便于下面循环 
  10.    $count=count($name); 
  11.    //循环调用上面的方法 
  12.    for ($i=0;$i<$count;$i++){ 
  13.     //得到文件的绝对路径 
  14.     $abs_dir=dirname(dirname(dirname(dirname(__FILE__)))); 
  15.     //组合路径 
  16.     $pa=$abs_dir.'indexRuntime'
  17.     $runtime=$abs_dir.'indexRuntime~runtime.php'
  18.     if(file_exists($runtime))//判断 文件是否存在 
  19.     { 
  20.      unlink($runtime);//进行文件删除 
  21.     } 
  22.  //调用删除文件夹下所有文件的方法 
  23.     $this->rmFile($pa,$name[$i]);  
  24.    } 
  25.    //给出提示信息 
  26.    $this->ajaxReturn(1,'清除成功',1); 
  27.   }else
  28.    $this->display(); 
  29.   } 
  30.  } 
  31.  public function rmFile($path,$fileName){//删除执行的方法 
  32.   //去除空格 
  33.   $path = preg_replace('/(/){2,}|{}{1,}/','/',$path);  
  34.   //得到完整目录  
  35.   $path.= $fileName
  36.   //判断此文件是否为一个文件目录 
  37.   if(is_dir($path)){ 
  38.    //打开文件 
  39.    if ($dh = opendir($path)){ 
  40.     //遍历文件目录名称 
  41.      while (($file = readdir($dh)) != false){ 
  42.       //逐一进行删除 
  43.       unlink($path.''.$file); 
  44.       } 
  45.       //关闭文件 
  46.       closedir($dh); 
  47.     }  
  48.    } 
  49.  } 

前台页面部分代码如下:

  1. <script type="text/javascript" src="__PUBLIC__/admin/js/jquery.js"></script> 
  2. <script type="test/javascript"
  3. $(function(){ 
  4. $('#button').click(function(){ 
  5. if(confirm("确认要清除缓存?")){ 
  6. var $type=$('#type').val(); 
  7. var $mess=$('#mess'); 
  8. $.post('__URL__/clear',{type:$type},function(data){ 
  9. alert("缓存清理成功"); 
  10. }); 
  11. }else
  12. return false; 
  13. }); 
  14. }); 
  15. </script> 

Tags: ThinkPHP一键清除缓存

分享到: