首頁  >  文章  >  後端開發  >  ThinkPHP實作一鍵清除快取方法

ThinkPHP實作一鍵清除快取方法

不言
不言原創
2018-06-06 15:15:231869瀏覽

這篇文章主要介紹了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.&#39;indexRuntime&#39;;
    $runtime=$abs_dir.&#39;indexRuntime~runtime.php&#39;;
    if(file_exists($runtime))//判断 文件是否存在
    {
     unlink($runtime);//进行文件删除
    }
 //调用删除文件夹下所有文件的方法
    $this->rmFile($pa,$name[$i]); 
   }
   //给出提示信息
   $this->ajaxReturn(1,&#39;清除成功&#39;,1);
  }else{
   $this->display();
  }
 }
 public function rmFile($path,$fileName){//删除执行的方法
  //去除空格
  $path = preg_replace(&#39;/(/){2,}|{}{1,}/&#39;,&#39;/&#39;,$path); 
  //得到完整目录 
  $path.= $fileName;
  //判断此文件是否为一个文件目录
  if(is_dir($path)){
   //打开文件
   if ($dh = opendir($path)){
    //遍历文件目录名称
     while (($file = readdir($dh)) != false){
      //逐一进行删除
      unlink($path.&#39;&#39;.$file);
      }
      //关闭文件
      closedir($dh);
    } 
   }
 }

前台頁面部分程式碼如下:

<script type="text/javascript" src="__PUBLIC__/admin/js/jquery.js"></script>
<script type="test/javascript">
$(function(){
$(&#39;#button&#39;).click(function(){
if(confirm("确认要清除缓存?")){
var $type=$(&#39;#type&#39;).val();
var $mess=$(&#39;#mess&#39;);
$.post(&#39;__URL__/clear&#39;,{type:$type},function(data){
alert("缓存清理成功");
});
}else{
return false;
}
});
});
</script>

相關推薦:

ThinkPHP實作跨模組呼叫

ThinkPHP實作更新資料實例詳解(demo)

以上是ThinkPHP實作一鍵清除快取方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn