title besides title

 

Monday, November 26, 2012

PHP : Files - [18.18] Flushing Output to a File

18.18.1 Problem

You want to force all buffered data to be written to a filehandle.

18.18.2 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.

18.18.3 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.