不言不语

您现在的位置是: 首页 >  PHP  >  ThinkPHP

ThinkPHP

thinkphp清除缓存

2021-12-03ThinkPHP
很多小伙伴在使用thinkphp5或者tp框架的时候,经常会用到怎么清除网站后台缓存,不知道怎么写,废话不多说,下面为大家帖下代码,以及详细使用方法!

很多小伙伴在使用thinkphp5或者tp框架的时候,经常会用到怎么清除网站后台缓存,不知道怎么写,废话不多说,下面为大家帖下代码,以及详细使用方法!


html代码

<a href="javascript::void(0)" onclick="clearPhp(this)" data-GetUrl="{:url('login/clear')}">清楚缓存</a>

js代码

<script>
    function clearPhp(obj) {
        var url=obj.getAttribute('data-GetUrl');
        //询问框
        layer.confirm('您确定要清除吗?', {
                    btn: ['确定','取消'] //按钮
                },
                function(){
                    $.get(url,function(info){
                        if(info.code === 1){
                            setTimeout(function () {location.href = info.url;}, 1000);
                        }
                        layer.msg(info.msg);
                    });
                },
                function(){});
    }</script>

控制器中的方法

    /**
     * 清除缓存
     */
    public function clear() {
        if (delete_dir_file(CACHE_PATH) || delete_dir_file(TEMP_PATH)) {
            $this->success('清除缓存成功');
        } else {
            $this->error('清除缓存失败');
        }
    }

common中的方法

/**
 * 循环删除目录和文件
 * @param string $dir_name
 * @return bool
 */function delete_dir_file($dir_name) {
    $result = false;
    if(is_dir($dir_name)){
        if ($handle = opendir($dir_name)) {
            while (false !== ($item = readdir($handle))) {
                if ($item != '.' && $item != '..') {
                    if (is_dir($dir_name . DS . $item)) {
                        delete_dir_file($dir_name . DS . $item);
                    } else {
                        unlink($dir_name . DS . $item);
                    }
                }
            }
            closedir($handle);
            if (rmdir($dir_name)) {
                $result = true;
            }
        }
    }

    return $result;}


文章评论