警告:fopen()[function.fopen]:文件名不能为空

时间:2012-05-16 17:04:54

标签: php caching fopen

我正在使用本教程http://papermashup.com/caching-dynamic-php-pages-easily/来缓存页面

<?php {
$cachefile = $_SERVER['DOCUMENT_ROOT'].'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);
} else {
ob_start(); // Start the output buffer
 ?>

/* Heres where you put your page content */


<?php 
// Cache the contents to a file
$cached = fopen($cacheFile, 'w');
fwrite($cached, ob_get_contents());
fclose($cached);
ob_end_flush(); // Send the output to the browser
}
?>

但我收到以下错误

Warning: fopen() [function.fopen]: Filename cannot be empty in

Warning: fwrite(): supplied argument is not a valid stream resource in

Warning: fclose(): supplied argument is not a valid stream resource in

文件的路径是正确的。如果我编辑文件我的自我包括但我再次得到错误

3 个答案:

答案 0 :(得分:6)

您的变量名称大小写有问题。 PHP变量名称区分大小写。将cacheFile更改为cachefile(使用较小的 F )。

改变这个:

$cached = fopen($cacheFile, 'w');

对此:

$cached = fopen($cachefile, 'w');

答案 1 :(得分:4)

您遇到拼写错误:$cachefile!= $cacheFile PHP标识符区分大小写。因此决定使用一个版本并更正其他版本。

更正代码:

$cached = fopen($cachefile, 'w');

答案 2 :(得分:3)

第一次引用$cachefile时。第二次引用$cacheFile。将外壳固定在一个地方或另一个地方你应该很好。