这是我的代码的 简单 表示形式:
include "header.php"
$cachefile = 'cache.html';
$cachetime = 4 * 60;
// Serve from the cache if it is younger than $cachetime
if (file_exists($cachefile) && time() - $cachetime < filemtime($cachefile)) {
include($cachefile);
exit;
}
ob_start(); // Start the output buffer
include page_content.php
$cached = fopen($cacheFile, 'w');
fwrite($cached, ob_get_contents());
fclose($cached);
ob_end_flush(); // This line is giving me trouble!
include "script.php"
include "footer.php"
所以我不想将输出发送到浏览器。如果我这样做,我的script.php
和footer.php
文件将不会被切断而不包括在内。我可以用什么代替ob_end_flush()
?
因此,只有内容被缓存,每次都会提取页脚和脚本。
我还应该将所有缓存文件放在自己的目录中吗? (说./cache/
)好处?
编辑:我删除了ob_end_flush()
行,一切似乎都运行正常。这有危险吗?我需要冲洗一下怎么样?