thinkphp缓存清除缓存
ThinkPHP在数据缓存方面包括文件方式、共享内存方式和数据库方式在内的多种方式进行缓存,通过插件方式还可以增加以后需要的缓存类,让应用开发可
以选择更加适合自己的缓存方式,从而有效地提高应用执行效率。目前已经支持的缓存方式包括:File、Apachenote、Apc、
Eaccelerator、Memcache、Shmop、Sqlite、Db、Redis和Xcache。
为了开发的方便,可以把缓存给去除。
1.找到ThinkPHPCommonconvention.php和ThinkPHPCommondebug.php
2.打开这两个文件找到你想要的设置即可。
debug.php中
'TMPL_CACHE_ON'=>false, // 默认开启模板缓存
复制代码
convention.php中'
TMPL_CACHE_ON' => false, // 默认开启模板编译缓存 false 的话每次都重新编译模板
'ACTION_CACHE_ON' => false, // 默认关闭Action 缓存
'HTML_CACHE_ON' => false, // 默认关闭静态缓存
复制代码
thinkphp 怎么关闭全部缓存?(
APP_DEBUG=>true
DB_FIELD_CACHE=>false
HTML_CACHE_ON=>false
复制代码
关闭ThinkPHP模板缓存
最后自己找见了,在config.php里面加上一句
'TMPL_CACHE_ON' => false,
'TMPL_CACHE_ON' => false,
复制代码
这样每次运行都重新生成缓存
2. thinkphp框架怎么清缓存
ThinkPHP需要清除的缓冲有四个:模版缓存(Cache),数据缓存目录(Temp), 日志目录(Logs), 数据目录(Data)。
// 清除缓存目录
function clearCache($type=0,$path=NULL) {
if(is_null($path)) {
switch($type) {
case 0:// 模版缓存目录
$path = CACHE_PATH;
break;
case 1:// 数据缓存目录
$path = TEMP_PATH;
break;
case 2:// 日志目录
$path = LOG_PATH;
break;
case 3:// 数据目录
$path = DATA_PATH;
}
}
import("ORG.Io.Dir");
Dir::del($path);
}如果你还不明白的话,你可以在后盾人看看教材视频,多看看几遍,慢慢的不就会了,如果嫌弃麻烦,你可以直接去后盾网问问那些专家讲师,他们很乐意帮你的,希望能帮到你,给个采纳吧谢谢,@(。・o・)@
3. thinkphp 如何实现清除缓存
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>
4. thinkphp过期的缓存文件如何自动删除
缓存时间过期后并不是自动删除文件,而是当你下次访问时自动生成新的缓存文件并覆盖原有的,删除了没有必须,因为当你下次再访问的时候还会生成,你可以使用系统配置来考虑缓存的时间或缓存的方式:
'TMPL_CACHE_ON' => true, // 是否开启模板编译缓存,设为false则每次都会重新编译
'TMPL_CACHE_TIME' => 0, // 模板缓存有效期 0 为永久,(以数字为值,单位:秒)
5. Think php 的缓存 过期后 是不是就没了。不用手动处理吧。
服务器一旦关闭,缓存的所有数据都会清除,
也可以设置手动清除,
缓存可以设置过期时间,过期可以自动清除
缓存一般有一个默认的最大时间,一般为一个月,超过时间会自动清除,
如果缓存大多容不下,缓存服务器会把最早的清除,然后存储最新的,
下面是一些缓存用的代码
ob_end_clean()删除内部缓冲区的内容,并且关闭内部缓冲区; 返回值:成功时返回 TRUE, 或者在失败时返回 FALSE:
ob_clean()输出缓冲区中的内容,不关闭缓冲区;
ob_get_length()返回缓冲区内容的长度():
ob_flush()冲刷出(送出)输出缓冲区内容并关闭缓冲
flush把不在缓冲中的或者说是被释放出来的数据发送到浏览器
ob_start()启动输出控制缓冲区
ob_clean()清空(擦掉)输出缓冲区,不关闭内部缓冲区