5

我已经寻找了很长一段时间,看看如果使用带有 PHP 的 ob_start 是否可以“附加”到文件中。

我尝试了以下但没有奏效。有什么方法可以做到这一点?

<?php

$cacheFile = 'file.txt';

if ( (file_exists($cacheFile)) && ((fileatime($cacheFile) + 600) > time()) )
{
$content = file_get_contents($cacheFile);
echo $content;
} else
{
ob_start();
// write content
echo '<h1>Hello world</h1>';
$content = ob_get_contents();
ob_end_clean();
file_put_contents($cacheFile,$content,'a+'); // I added the a+
echo $content;
}
?>

我从另一篇关于 SO 的帖子中借用了上面的例子

4

2 回答 2

7

要追加使用file_put_contents(),您可以简单地FILE_APPEND作为第三个参数传递:

file_put_contents($cacheFile, $content, FILE_APPEND);

它还可以用于使用二进制 OR 运算符应用文件锁定,例如FILE_APPEND | LOCK_EX.

于 2012-06-05T18:40:22.307 回答
4

file_put_contents不能那样工作。要追加,您需要使用fopen,fwritefclose手动。

$file = fopen($cacheFile, 'a+');
fwrite($file, $content);
fclose($file);
于 2012-06-05T18:38:48.190 回答