From: Nathan Rixham on
Dennis J. wrote:
> The issue is that once I've hit the EOF I need to continue the loop
> using the stream_select() waiting for new data.

AFAIK you can't; you see stream_select checks to see if something will
be blocked; if EOF is reached it considers this as not blocked; in other
words the second you hit a file EOF stream_select will continue to
instantly return a positive (without the wait of 1 second).

As far as I know every related function will always return the second
EOF is hit; meaning that the -f functionality you want can only be
gained by adding in the sleep (but i think every line reading function
will still instantly return with an empty line) - so maybe you just need
to proc_open to tail -f and read the stream with PHP - as it won't send
an EOF - example:

$stream = popen( 'tail -f access.log' , 'r' );
while( $line = fgets($stream) ) {
echo $line;
pclose( $stream ); // won't get here unless an error i guess..

good luck!