PHP输出缓冲抛出警告
我必须在PHP脚本运行时输出结果:PHP输出缓冲抛出警告,php,output-buffering,Php,Output Buffering,我必须在PHP脚本运行时输出结果: ob_implicit_flush(true); ob_start(); for ($i=0; $i<5; $i++) { echo $i . ' - '; ob_end_flush(); flush(); sleep(1); } ob\u隐式\u刷新(true); ob_start(); 对于第一个循环中的($i=0;$i),您将结束缓冲区。如果您想这样做,您应该在每个循环中启动一个新的缓冲区 ob_implicit_
ob_implicit_flush(true);
ob_start();
for ($i=0; $i<5; $i++) {
echo $i . ' - ';
ob_end_flush();
flush();
sleep(1);
}
ob\u隐式\u刷新(true);
ob_start();
对于第一个循环中的($i=0;$i),您将结束缓冲区。如果您想这样做,您应该在每个循环中启动一个新的缓冲区
ob_implicit_flush(true);
for ($i=0; $i<5; $i++) {
ob_start();
echo $i . ' - ';
ob_end_flush();
flush();
sleep(1);
}
在第一个循环中,您将结束缓冲区。如果您想这样做,您应该在每个循环中启动一个新的缓冲区
ob_implicit_flush(true);
for ($i=0; $i<5; $i++) {
ob_start();
echo $i . ' - ';
ob_end_flush();
flush();
sleep(1);
}
ob\u end\u flush()
将禁用缓冲,因此以后在循环中对此的调用将失败。只需使用ob\u flush()
,即可清除缓冲区,但保持输出缓冲:
ob_implicit_flush(true);
ob_start();
for ($i=0; $i<5; $i++) {
echo $i . ' - ';
ob_flush();
sleep(1);
}
ob_end_flush();
ob\u隐式\u刷新(true);
ob_start();
对于($i=0;$iob\u end\u flush()
将禁用缓冲,因此以后在循环中对此的调用将失败。只需使用ob\u flush()
,它将清除缓冲区,但保持输出缓冲:
ob_implicit_flush(true);
ob_start();
for ($i=0; $i<5; $i++) {
echo $i . ' - ';
ob_flush();
sleep(1);
}
ob_end_flush();
ob\u隐式\u刷新(true);
ob_start();
对于($i=0;$i好的,我这样修复它:
ob_implicit_flush(true);
ob_start();
for ($i=0; $i<5; $i++) {
echo $i . ' - ';
flush();
@ob_flush();
@ob_end_clean();
sleep(1);
}
ob\u隐式\u刷新(true);
ob_start();
对于($i=0;$i好的,我这样修复它:
ob_implicit_flush(true);
ob_start();
for ($i=0; $i<5; $i++) {
echo $i . ' - ';
flush();
@ob_flush();
@ob_end_clean();
sleep(1);
}
ob\u隐式\u刷新(true);
ob_start();
对于($i=0;$i,我再次思考并选择另一种方式。您应该在结束时只调用一次ob\u end\u flush()
。再次思考并选择另一种方式。您应该只调用ob\u end\u flush()
最后一次。谢谢!但是如果在每个循环中启动一个新的缓冲区会对性能产生影响,那么只清理第一个缓冲区并重新使用是否更好?以及如何执行?为什么要多次启动缓冲区?他只需要ob_flush()
@FrankerZ你写评论时,我正在编辑答案:P@JimWright此方法不起作用,因为它一次响应所有内容,而不是在每次之后loop@medk看一看。在浏览器中,输出缓冲可能有点挑剔。谢谢!但是如果在每个循环中启动一个新的缓冲区会对性能产生影响,那么清理一下会更好吗第一次启动并重新使用它?如何执行?为什么要多次启动缓冲区?他只需要ob_flush()
@FrankerZ你写评论时,我正在编辑答案:P@JimWright此方法不起作用,因为它一次响应所有内容,而不是在每次之后loop@medk看一看。在浏览器中,输出缓冲可能有点挑剔。你不需要在循环后刷新。如果他之后有额外的代码,或者其他任何东西,他会回显(例如final end语句。)包含很重要。循环后不需要刷新。如果他之后有额外的代码,或者他要回显的任何其他内容(例如final end语句)。包含很重要。