Many open source CMS systems have the function of clearing the cache with one click. The cache is created to reduce the pressure on the server, but at the same time, the existence of the cache may also prevent some data from being updated in real time. In this regard, we will implement a ThinkPHP's cache clearing function. The code is as follows:
ThinkPHP background execution code:
//获取要清楚的目录和目录所在的绝对路径 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); } } }
Part of the code on the front page is as follows:
<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>