Don't forget that you have had a dream

    

thinkPHP5网站后台添加一键清除缓存功能

前言

thinkPHP的缓存功能对于网站运行来说是比不可少的,但是在有些时候,特别是在做开发的时候,缓存实在是令人头疼,这边文章分享下tp5通过ajax提交达到一键清除网站缓存的功能

/uploads/20180818/4e93d17f3ebb9e496c9b9448d90e1d72.png

使用方法

后端PHP中

  1. 在公共文件common.php中添加公共方法
if (!function_exists('delete_dir_file')) {

    /**
     * 循环删除目录和文件
     * @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;
    }
}
  1. controller(控制器)中添加
/**
 * 清除缓存
 */
public function clear() {
    if (delete_dir_file(CACHE_PATH) || delete_dir_file(TEMP_PATH)) {
        $this->success('清除缓存成功!');
    } else {
        $this->error('清除缓存失败!');
    }
}
  1. JavaScript中添加
<script type="text/javascript">
//清除缓存
function clearPhp(obj) {
    var url=obj.getAttribute('data-GetUrl');
    //询问框
    layer.confirm('你确定要清除缓存吗?', {icon: 3, title:'提示'},
    function(){
        $.get(url,function(info){
            if(info.code === 1){
                setTimeout(function () {location.href = info.url;}, 1000);
            }
            layer.msg(info.msg,{icon:1});
        });
    },
    function(){});
}
</script>
  1. html页面中,因为需要在任何页面都能快速清除缓存,所以我把调用代码写在了公共文件中
<a href="javascript:void(0);" class="list-group-item cache" onclick="clearPhp(this)" data-GetUrl="{:url('admin/clear')}">
    <div class="media">
        <div class="media-img" style="color: #333;"><i class="fa fa-bolt"></i></div>
        <div class="media-body">
            <div class="font-strong"></div>清除所有缓存<small class="text-muted float-right">删除所有 temp+cache</small>
        </div>
    </div>
</a>

这样下来就能达到一键清除系统缓存的目的了

您可以自由的转载和修改,但请务必注明文章来源并且不可用于商业目的。
本站部分内容收集于互联网,如果有侵权内容、不妥之处,请联系我们删除。敬请谅解!
所有原创文章采用 知识共享署名-非商业性使用 4.0 国际许可协议 知识共享许可协议 进行许可。

评论已关闭

  更新日志

博客banner下方滚动文字替换为使用 一言API 随机获取 --- updated on 2019-05-22 09:04:31 星期三

  关于博主

三里林,一个致力于分享,分享心得,分享技术,分享知识点的个人博客

  近期评论

  分类目录

你有学校也有朋友,但对我来说,我的生活中就只有你。

一切不谈语境的真理都是耍流氓

把海弄干的鱼在海干前上了陆地,从一片黑暗森林奔向另一片黑暗森林。

别以为我长的帅就认为我遥不可及高不可攀,其实我是海纳百川啊!

江湖可能因为少了谁而失色,却不会因为少了谁后就不再是江湖。

我们嘴里的别人的事听起来就像是自己的事;我们说自己的事的时候,却又在像说一段不相干的故事

无论发生什么事情,哪怕是一个人成了一个没有了灵魂的躯体,那另一个人也还是要努力地工作下去。

以前高中时,羡慕大学考试只要及格就行;现在大学了,怀念高中考试及不及格都行…