mirror of
https://github.com/php/php-src.git
synced 2024-11-26 11:23:47 +08:00
Added ob_flush_all() that flushes bufferred contents until it actually
sent/printed. @ Added ob_flush_all() that flushes all buffers. (Yasuo)
This commit is contained in:
parent
4fbf3f77c0
commit
66a50c5373
@ -6,6 +6,8 @@ $euc_jp = "
|
||||
mb_http_output('EUC-JP') or print("mb_http_output() failed\n");
|
||||
ob_start('mb_output_handler');
|
||||
echo $euc_jp;
|
||||
ob_end_flush();
|
||||
$output = ob_get_clean();
|
||||
|
||||
var_dump( $output );
|
||||
|
||||
?>
|
||||
|
@ -747,6 +747,7 @@ function_entry basic_functions[] = {
|
||||
/* functions from output.c */
|
||||
PHP_FE(ob_start, NULL)
|
||||
PHP_FE(ob_flush, NULL)
|
||||
PHP_FE(ob_flush_all, NULL)
|
||||
PHP_FE(ob_clean, NULL)
|
||||
PHP_FE(ob_end_flush, NULL)
|
||||
PHP_FE(ob_end_clean, NULL)
|
||||
|
@ -739,7 +739,7 @@ PHP_FUNCTION(ob_start)
|
||||
/* }}} */
|
||||
|
||||
/* {{{ proto bool ob_flush(void)
|
||||
Flush (send) contents of the output buffers */
|
||||
Flush (send) contents of the output buffer. The last buffer content is sent to next buffer */
|
||||
PHP_FUNCTION(ob_flush)
|
||||
{
|
||||
if (ZEND_NUM_ARGS() != 0)
|
||||
@ -749,12 +749,35 @@ PHP_FUNCTION(ob_flush)
|
||||
php_error_docref("ref.outcontrol" TSRMLS_CC, E_NOTICE, "failed to flush buffer. No buffer to flush.");
|
||||
RETURN_FALSE;
|
||||
}
|
||||
|
||||
|
||||
php_end_ob_buffer(1, 1 TSRMLS_CC);
|
||||
RETURN_TRUE;
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
/* {{{ proto bool ob_flush_all(void)
|
||||
Flush (send) contents of output buffers. All buffered contents will be written/sent */
|
||||
PHP_FUNCTION(ob_flush_all)
|
||||
{
|
||||
int orig;
|
||||
|
||||
if (ZEND_NUM_ARGS() != 0)
|
||||
WRONG_PARAM_COUNT;
|
||||
|
||||
if (!OG(ob_nesting_level)) {
|
||||
php_error_docref("ref.outcontrol" TSRMLS_CC, E_NOTICE, "failed to flush buffer. No buffer to flush.");
|
||||
RETURN_FALSE;
|
||||
}
|
||||
|
||||
orig = OG(implicit_flush); /* save current implicit flush state */
|
||||
php_start_implicit_flush(TSRMLS_C);
|
||||
php_end_ob_buffer(1, 1 TSRMLS_CC);
|
||||
OG(implicit_flush) = orig;
|
||||
|
||||
RETURN_TRUE;
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
/* {{{ proto bool ob_clean(void)
|
||||
Clean (delete) the current output buffer */
|
||||
PHP_FUNCTION(ob_clean)
|
||||
|
@ -47,6 +47,7 @@ PHPAPI int php_ob_get_length(zval *p TSRMLS_DC);
|
||||
|
||||
PHP_FUNCTION(ob_start);
|
||||
PHP_FUNCTION(ob_flush);
|
||||
PHP_FUNCTION(ob_flush_all);
|
||||
PHP_FUNCTION(ob_clean);
|
||||
PHP_FUNCTION(ob_end_flush);
|
||||
PHP_FUNCTION(ob_end_clean);
|
||||
|
Loading…
Reference in New Issue
Block a user