程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> ThinkPHP實現一鍵清除緩存方法

ThinkPHP實現一鍵清除緩存方法

編輯:PHP綜合

很多的開源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>
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved