thinkphp 如何实现清除缓存?

有没有人在啊,想请教一下,thinkphp 如何实现清除缓存?
最新回答
青衫

2024-07-28 10:23:03

define('RUNTIME_PATH' , './runtime/'.APP_NAME.'/' );
首先一开始的时候把缓存目录提出,让所有缓存都放入一个目录,这样清理缓存就很容易了。
ThinkPHP默认使用的是文件缓存,那么就只要把缓存文件删除就可以了。
可以使用:
import('ORG.Io.Dir');
Dir::delDir('./runtime/');
搞妇帅

2024-07-28 03:17:11

ThinkPHP后台执行的代码:
//获取要清楚的目录和目录所在的绝对路径
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);
}
}
}
前台页面部分代码如下:
<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>
忘记心痛回忆

2024-07-28 04:33:37

thinkPHP只是文件缓存,直接找到项目里面的“Runtime”,删除就行。
纞嗳の方程鉽

2024-07-28 13:53:16

删除缓存文件就可以 了啊