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()清空(擦掉)輸出緩沖區,不關閉內部緩沖區