ID:               34429
 Comment by:       pdxtechie at gmail dot com
 Reported By:      zimage at icdsoft dot com
 Status:           Open
 Bug Type:         CGI related
 Operating System: *
 PHP Version:      5CVS, 4CVS (2005-09-12)
 New Comment:

This would also be useful for Ajax (using, for example, the
RicoAjaxEngine.) If you are unable to disable buffering, there is no
way to stream XML for progress updates through Ajax.


Previous Comments:
------------------------------------------------------------------------

[2005-09-12 16:08:04] zimage at icdsoft dot com

It could be also used for writing progress bars. On a random shared
hosting server:

locate .php |wc -l
  25147
locate .php |xargs -n1 -i grep -H -e "flush *(" {}
    641

So people are using it for some reason... I can see flush() used in
Moveable Type, Word Press, MediaWiki and so on.

------------------------------------------------------------------------

[2005-09-12 15:49:27] [EMAIL PROTECTED]

Writing such things using PHP is pretty useless IMO, but if it works
with other SAPIs..


------------------------------------------------------------------------

[2005-09-12 15:47:25] zimage at icdsoft dot com

This is how you could write a chat client for example. Connection is
kept open for the duration of chat session and php script is looping
over the client and server messages.

------------------------------------------------------------------------

[2005-09-10 22:56:11] [EMAIL PROTECTED]

How would it be useful to be able to turn it off?


------------------------------------------------------------------------

[2005-09-09 11:25:26] zimage at icdsoft dot com

And strace of php process looks like:

read(4, "<?php\n\tfor ($i=0; $i<4; $i++){\n\t"..., 8192) = 65
read(4, "", 4096)                       = 0
read(4, "", 8192)                       = 0
close(4)                                = 0
munmap(0x4056b000, 4096)                = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGCHLD, NULL, {SIG_DFL}, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
nanosleep({1, 0}, {1, 0})               = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGCHLD, NULL, {SIG_DFL}, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
nanosleep({1, 0}, {1, 0})               = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGCHLD, NULL, {SIG_DFL}, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
nanosleep({1, 0}, {1, 0})               = 0
rt_sigprocmask(SIG_BLOCK, [CHLD], [], 8) = 0
rt_sigaction(SIGCHLD, NULL, {SIG_DFL}, 8) = 0
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
nanosleep({1, 0}, {1, 0})               = 0
setitimer(ITIMER_PROF, {it_interval={0, 0}, it_value={0, 0}}, NULL) =
0
write(3, "[EMAIL PROTECTED]: text/html\r"..., 96) = 96

I.e. there are 4 calls to sleep and the script output is writen at
once. Any
pointers to documentation or further tests that I should perform are
welcome.

------------------------------------------------------------------------

The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
    http://bugs.php.net/34429

-- 
Edit this bug report at http://bugs.php.net/?id=34429&edit=1

Reply via email to