我有这个简单的代码
echo "start<br>";
while($row = $stmt->fetch())
{
// code
echo "inside while<br>";
}
echo "done";
Run Code Online (Sandbox Code Playgroud)
该页面不会实时回显我的内部,一旦完成处理整个数据,它就会同时输出所有的回声.我希望看到内部的回声,一个接一个地发生. ..
谢谢
这就是PHP默认工作的方式.它会缓冲输出,并且在页面完成之前不会将其发送到您的浏览器.
有一种方法可以解决它.您关闭所有输出缓冲,flush每次都告诉PHP 数据echo.
我在这里找到了一个解决方案:http://manzzup.blogspot.com/2013/11/real-time-updating-of-php-output-using.html
执行此操作的代码是:
// Turn off output buffering
ini_set('output_buffering', 'off');
// Turn off PHP output compression
ini_set('zlib.output_compression', false);
//Flush (send) the output buffer and turn off output buffering
while(@ob_end_flush());
// Implicitly flush the buffer(s)
ini_set('implicit_flush', true);
ob_implicit_flush(true);
// Needed to force browsers to actually display data
echo str_pad("",1024," ");
echo "<br />";
Run Code Online (Sandbox Code Playgroud)
将其添加到页面顶部.然后,当循环运行时,您的数据将显示在页面上.