【发布时间】:2015-09-13 19:54:05
【问题描述】:
我正在尝试从一个名为“includes/menu.php”的随机数据的菜单中创建一个缓存文件,当我手动运行该文件时会创建随机数据,它可以工作。现在我想将这些数据缓存到一个文件中一段时间,然后重新缓存它。我遇到了 2 个问题,从我的代码缓存中创建,但它缓存了整个 php 页面,它不缓存结果,只缓存代码而不执行它。我究竟做错了什么 ?这是我到目前为止所拥有的:
<?php
$cache_file = 'cachemenu/content.cache';
if(file_exists($cache_file)) {
if(time() - filemtime($cache_file) > 86400) {
// too old , re-fetch
$cache = file_get_contents('includes/menu.php');
file_put_contents($cache_file, $cache);
} else {
// cache is still fresh
}
} else {
// no cache, create one
$cache = file_get_contents('includes/menu.php');
file_put_contents($cache_file, $cache);
}
?>
【问题讨论】:
-
您需要捕获和存储
php文件的buffer输出,而不是php文件本身。请看secure.php.net/manual/en/function.ob-start.php
标签: php file-get-contents file-put-contents