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 — Çıktıyı bir dosyaya boşaltır
Açıklama
bool fflush
( resource
$dt
)
Bu işlev tüm tampon çıktısının dosya tanıtıcısı dt
ile belirtilen dosyaya yazılması için zorlar.
Değiştirgeler
-
dt -
Dosya tanıtıcısı geçerli olmalı ve fopen() veya fsockopen() tarafından başarıyla açılmış bir dosya için döndürülmüş olmalıdır (ve henüz fclose() tarafından kapatılmamış olmalıdır).
Dönen Değerler
Başarı durumunda TRUE, başarısızlık durumunda FALSE döner.
Örnekler
Örnek 1 - fflush() kullanarak dosyaya yazma örneği
<?php
$filename = 'bar.txt';
$file = fopen($filename, 'r+');
rewind($file);
fwrite($file, 'Foo');
fflush($file);
ftruncate($file, ftell($file));
fclose($file);
?>
Ayrıca Bakınız
- clearstatcache() - Dosya durum önbelleğini temizler
- fwrite() - Dosyaya ikil kipte yazar
oryan at zareste dot com ¶
7 years ago
jzho327 at cse dot unsw dot edu dot au ¶
10 years ago
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.
