我在Windows 7 x64系统上使用PHP 5.2.4和Apache 2.2.17。我希望我的PHP页面能够实时向用户的浏览器输出system
调用的结果。为此,我已经配置在php.ini output_buffering=Off
,并创造了这个代码:实时输出打印过程
<?php
ob_implicit_flush(true);
ob_end_flush();
system('ping -n 10 www.google.com');
?>
平的结果打印实时的,但在顶我也得到一个PHP诊断错误和调用堆栈我的页面上写着:
Notice: ob_end_flush() [ref.outcontrol]: failed to delete and flush buffer. No buffer to delete or flush in index.php on line 3
我需要做什么来纠正或抑制此错误?
更新 如果我改变ob_end_flush()
到$a = 1/0;
我收到了类似的错误,并且输出在所有浏览器实时。打印异常的方式会导致这种情况发生吗?
删除'ob_end_flush()函数;' – Grexis 2012-01-06 22:25:26
如果我删除或用@抑制,输出不再是实时的Chrome 16或Firefox 10.(虽然它在IE9中工作) – PaulH 2012-01-06 22:29:14
这很奇怪,但请参阅下面的答案。 – Grexis 2012-01-06 22:36:12