diff options
-rw-r--r-- | main/output.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/main/output.c b/main/output.c index d28e81537a..67bf214cbf 100644 --- a/main/output.c +++ b/main/output.c @@ -368,6 +368,14 @@ static void php_ob_append(const char *text, uint text_length TSRMLS_DC) memcpy(target, text, text_length); target[text_length]=0; + /* If implicit_flush is On, send contents to next buffer and return. + Both PG() and OG() should be used since we should flush implicitly + always when implicit_flush is enabled in php.ini */ + if (PG(implicit_flush) || OG(implicit_flush)) { + php_end_ob_buffer(1, 1 TSRMLS_CC); + return; + } + if (OG(active_ob_buffer).chunk_size && OG(active_ob_buffer).text_length >= OG(active_ob_buffer).chunk_size) { zval *output_handler = OG(active_ob_buffer).output_handler; |