Home  >  Article  >  Backend Development  >  ThinkPHP implements one-click cache clearing method

ThinkPHP implements one-click cache clearing method

不言
不言Original
2018-06-06 15:15:231810browse

This article mainly introduces the one-click cache clearing method of ThinkPHP. Friends who need it can refer to it

Many open source cms systems have the function of clearing the cache with one click. Caching is to reduce the pressure on the server. generated, but the existence of cache may also prevent some data from being updated in real time. In this regard, we will implement a ThinkPHP cache clearing function. The code is as follows:

ThinkPHP background execution code:

//获取要清楚的目录和目录所在的绝对路径
 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);
    } 
   }
 }

The front page page code is as follows:

<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>

Related recommendations:

ThinkPHP implements cross-module calls

ThinkPHP implements detailed examples of updating data (demo)

The above is the detailed content of ThinkPHP implements one-click cache clearing method. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn