18.17. Flushing Output to a File
Problem
You want to force all buffered data to be written to a filehandle.
Solution
Use fflush( )
:
fwrite($fh,'There are twelve pumpkins in my house.'); fflush($fh);
This ensures that "There
are
twelve pumpkins in
my
house
.” is
written to $fh
.
Discussion
To be more efficient, system I/O libraries generally
don’t write something to a file when you tell them
to. Instead, they batch the writes together in a buffer and save all
of them to disk at the same time. Using fflush( )
forces anything pending in the write buffer to be actually written to
disk.
Flushing output can be particularly
helpful when generating an access or activity log. Calling
fflush( )
after each message to log file makes
sure that any person or program monitoring the log file sees the
message as soon as possible.
See Also
Documentation on fflush( )
at
http://www.php.net/fflush.
Get PHP Cookbook now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.