2012-06-05 4 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 = fopen($cacheFile, 'a+'); 
fwrite($file, $content); 
fclose($file); 
단순히 세 번째 인수로 FILE_APPEND를 전달할 수 있습니다 file_put_contents()를 사용하여 추가하려면
+1

'file_put_contents'는 실제로 파일 추가를 지원합니다 :) –

+0

@Jack : 실제로 그것을 알지 못했습니다 : -P 지금합니다! 어쨌든 여기에두고 갈께. –

+0

고맙게도 로켓, 아름답게 일했습니다. 건배 ~ –

6

:

file_put_contents($cacheFile, $content, FILE_APPEND); 
또한 이진 OR 연산자를 사용하여 잠금 파일을 적용 할 수 있습니다

, 예를 들어, FILE_APPEND | LOCK_EX.

+1

감사합니다 잭, 당신도 일했습니다. 건배 ~ –

관련 문제