温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

怎么在ThinkPHP中实现一个一键清除缓存功能

发布时间:2020-12-24 15:29:25 来源:亿速云 阅读:192 作者:Leah 栏目:开发技术

这期内容当中小编将会给大家带来有关怎么在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>

上述就是小编为大家分享的怎么在ThinkPHP中实现一个一键清除缓存功能了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注亿速云行业资讯频道。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI