0
當此示例網頁加載時,它會檢查來自/ cache文件夾的緩存文件。如果沒有緩存文件,它會調用ob_start()並創建一個.html緩存文件。問題是這個緩存過程每次都在工作,即使我沒有調用ob_start()。請建議我。謝謝。PHP ob_start()用於文件緩存
// class file
function check_cache($dynamic_url) {
$cache_file = $this->cache_folder.md5($dynamic_url).$this->cache_ext;
if ((file_exists($cache_file)) && (time() - $this->cache_time < filemtime($cache_file))) {
// ob_start('ob_gzhandler');
readfile($cache_file);
ob_end_flush();
exit();
}
else {
//ob_start('ob_gzhandler');
}
}
function create_cache($dynamic_url) {
$cache_file = $this->cache_folder.md5($dynamic_url).$this->cache_ext;
$fp = fopen($cache_file, 'w');
fwrite($fp, ob_get_contents());
fclose($fp);
ob_end_flush();
}
,我調用這個類從
$cache->check_cache(get_full_url());
<h1>Today is <?php echo date('Y-m-d h:i:s'); ?></h1>
$cache->create_cache(get_full_url());
什麼是「但ob_end_flush()函數似乎工作」的含義是什麼?如果調用ob_end_flush()但尚未調用ob_start(),則ob_end_flush()將不執行任何操作。 –
這就是我所期望的......正如你可以看到我沒有調用ob_start(),但它一直在緩存頁面...... –