Home > Backend Development > PHP Tutorial > ThinkPHP清除缓存/删除文件夹上所有文件

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

WBOY
Release: 2016-06-13 13:15:33
Original
1309 people have browsed it

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方式提交




                     

                      

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

                           
                       
                       
                     
                     

                

//一键清除所有


                     
                      

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


                          
                     
                     

                


Related labels:
source:php.cn
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template