问题
I'm trying to implement a simple Http Response class that implements Http Streaming (or Chunked-Encoding). For this to be possible, I need to set output_buffering = Off
in the php.ini, and flush the output at certain intervals.
PHP does a good job of this automatically - except for the actual flushing mechanism. I've gotten it to work, but I'm not sure if it's overboard. I want to know how to flush each level of output buffering at once, without calling a billion functions (I'm not sure which ones are redundant on which environments / in which scenarios).
while (ob_get_level())
{
ob_end_flush();
}
// print the buffer
flush();
ob_flush();
Is this overkill?
回答1:
You don't need ob_flush()
and ob_end_flush()
. Your while loop is sufficient.
You should also look at: http://us.php.net/manual/en/function.ob-implicit-flush.php
Your need for flush()
after ob_end_flush()
depends on how you set this function.
来源:https://stackoverflow.com/questions/7549347/php-flush-all-levels-of-output-buffering