热搜:NVER 

ThinkPHP清除缓存/删除文件夹上所有文件

2024-04-26 22:11:01
 ThinkPHP清除缓存/删除文件夹上所有文件

ThinkPHP清除缓存/删除文件夹下所有文件

今天做了一个ThinkPHP清除缓存功能,在网上开了一下有一个比较简单的写法但是那个是ThinkPHP内置的一个类,我找了半天没找到这个类,气死我了  于是就用php删除文件夹下所有文件这个方法来达到清除缓缓存的的功能,废话不多说粘上代码:

/*此方法为公共方法用来删除某个文件夹下的所有文件
     * $path为文件的路径
     * $fileName文件夹名称
     * */
    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);
                }    
            }
    }

//一对一删除缓存
    public function cache(){

        //前台用ajax get方式进行提交的,这里是先判断一下
        if($_GET['type']){

             //获取提交过来的值(也就是要删除的文件夹名称)

            $type=$_GET['type'];

            //获取文件的绝对路径

            $abs_dir=dirname(dirname(dirname(dirname(__FILE__))));

            //与要删除的文件夹里的文件进行组合
            $pa=$abs_dir.'\Admin\Runtime\\';

           //调用上面写好的方法

            $this->rmFile($pa,$type);

            //返回提示信息
            $this->ajaxReturn(1,'清除成功',1);
        }else{
            $this->display();
        }
    }

//一键清除所有缓存
    public function allrun(){

        ////前台用ajax get方式进行提交的,这里是先判断一下
        if($_GET['type']){

          //得到传递过来的值
            $type=$_GET['type'];

            //将传递过来的值进行切割,我是已“-”进行切割的
            $name=explode('-', $type);

            //得到切割的条数,便于下面循环

            $count=count($name);

           //循环调用上面的方法

            for ($i=0;$i

                //得到文件的绝对路径

                $abs_dir=dirname(dirname(dirname(dirname(__FILE__))));

                //组合路径
                $pa=$abs_dir.'\Admin\Runtime\\';

                //调用删除文件夹下所有文件的方法
                $this->rmFile($pa,$name[$i]);    
            }

           //给出提示信息

            $this->ajaxReturn(1,'清除成功',1);
        }else{
            $this->display();
        }
    }

前台页面很简单 在这里就给出重要的代码

html文件

//这个是ajax get方式提交




                     

                      

                           //关键就是这个隐藏域的默认值 就是你要删除文件夹里面内容的文件夹的名

                           
                       
                       
                     
                     

                

//一键清除所有


                     
                      

                            //默认值是几个文件夹的名字连起来 提交方式和上面的一样