Just a note that fflush takes care of the cache already, at least on my server. Using clearstatcache before reading a previously written file also worked, but lagged the output time much more noticeably (by two or three seconds), probably due to excess cache erasing beyond files.
fflush
(PHP 4 >= 4.0.1, PHP 5)
fflush — Записва данните буферирани в изходия поток във файл
Описание
bool fflush
( resource $handle
)
Тази функция записва всички данни, буферирани в изходния поток, във файл, указан чрез манипулатор handle .
Параметри
- handle
-
Файловият указател трябва да бъде валиден, и трябва да сочи към файл, който е бил отворен успешно чрез функция fopen() или fsockopen() (и все още да не е затворен от fclose()).
Връщани стойности
Връща TRUE при успех или FALSE при неуспех.
Примери
Example #1 Записване във файл с използване на fflush()
<?php
$filename = 'bar.txt';
$file = fopen($filename, 'r+');
rewind($file);
fwrite($file, 'Foo');
fflush($file);
ftruncate($file, ftell($file));
fclose($file);
?>
Вж. също
- clearstatcache() - Изчиства кеша за статуса на файл
- fwrite() - Двоично-безопасно записване във файл
oryan at zareste dot com
30-Oct-2005 09:48
jzho327 at cse dot unsw dot edu dot au
26-Jan-2003 05:27
Sorry, the note I previously added regarding fflush() has a bug!
when you read file by calling
$fp = fopen("myfile", "a+");
and you wish to read the content, you have to call
rewind($fp) before you attemp to read it. (Silly me) Or else if you tried something like
$fp = fopen("myfile", "a+");
$content = fread($fp);
// show that content is in fact null
if ($content == NULL)
print "but it must be first put to rewind<br>\n";
will result
but it must be first put to rewind.
[new line]
in fact, if you are not careful (like me), and you opened it with
$fp = fopen("myfile", "r+");
$content = fread($fp);
..
// do something with content
..
then you tried to again
$content = fread($fp);
without rewind, you'd get NULL again. This sounds trivial, but if you work with several file resources, with freads and fopens everywhere, you can get easily lost. So becareful.
