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

を使用して追加するには、3 番目の引数として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追加するには、fwriteと をfclose手動で使用する必要があります。

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