2012-06-05 6 views
5

PHPでob_startを使用している場合、ファイルに「追加」することができるかどうかを確認するために、かなり長い間今見てきました。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; 
} 
?> 

私はS.O.の別の投稿から上記の例を借りました。

答えて

4

file_put_contentsこのようには機能しません。追加するには、fopen,fwritefcloseを手動で使用する必要があります。

file_put_contents($cacheFile, $content, FILE_APPEND); 

バイナリOR演算子を使用してファイルのロックを適用するためにも使用することができる、例えば:あなたは単に3番目の引数としてFILE_APPENDを渡すことができるfile_put_contents()を使用して追加する

$file = fopen($cacheFile, 'a+'); 
fwrite($file, $content); 
fclose($file); 
+1

'file_put_contents'は実際にファイルの追加をサポートしています:) –

+0

@Jack:実際にそれを知りませんでした:-P私はとにかくこれをここに残す。 –

+0

ありがとう、ロケット、美しく働いた。乾杯〜 –

6

FILE_APPEND | LOCK_EX

+1

ありがとうジャック、あなたも働いた。乾杯〜 –

関連する問題