A hint for PHP beginners like me:
The buffered output which is write by fflush() has nothing to do with the output buffer which is initiated by the ob_start() function.
(PHP 4 >= 4.0.1, PHP 5, PHP 7)
fflush — Przekierowuje wyjście do pliku
$uchwyt
) : bool
Ta funkcja wymusza zapis całego zbuforowanego wyjścia do zasobu wskazywanego
przez plik uchwyt
.
uchwyt
Wskaźnik na plik musi być poprawny i musi wskazywać na plik pomyślnie otwarty przez funkcję fopen() lub fsockopen() (a jednocześnie nie zamknięty jeszcze przez fclose()).
Zwraca TRUE
w przypadku powodzenia, FALSE
w
przypadku błędu.
Przykład #1 Przykład zapisu do pliku używając fflush()
<?php
$nazwa_pliku = 'bar.txt';
$plik = fopen($nazwa_pliku, 'r+');
rewind($plik);
fwrite($plik, 'Foo');
fflush($plik);
ftruncate($plik, ftell($plik));
fclose($plik);
?>
A hint for PHP beginners like me:
The buffered output which is write by fflush() has nothing to do with the output buffer which is initiated by the ob_start() function.
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.