php – echo“string”,而每个long循环迭代(flush()不起作用)

前端之家收集整理的这篇文章主要介绍了php – echo“string”,而每个long循环迭代(flush()不起作用)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个循环需要很长时间才能执行,我希望脚本在循环迭代完成时显示某些东西.
  1. echo "Hello!";
  2.  
  3. flush();
  4.  
  5. for($i = 0; $i < 10; $i ++) {
  6. echo $i;
  7. //5-10 sec execution time
  8. flush();
  9. }

在整个脚本完成之前,这不会显示回音.什么地方出了错?

PHP手册:

flush()可能无法覆盖Web服务器的缓冲方案,并且它对浏览器中的任何客户端缓冲都没有影响.它也不影响PHP用户空间输出缓冲机制.这意味着如果您正在使用ob输出缓冲区,则必须调用ob_flush()和flush()来刷新ob输出缓冲区.

  1. echo "Hello!";
  2. flush();
  3. ob_flush();
  4.  
  5. for($i = 0; $i < 10; $i ++) {
  6. echo $i;
  7. //5-10 sec execution time
  8. flush();
  9. ob_flush();
  10. }

– 或 – 您可以刷新并关闭缓冲

  1. <?PHP
  2. //Flush (send) the output buffer and turn off output buffering
  3. while (ob_get_level() > 0)
  4. ob_end_flush();
  5.  
  6. echo "Hello!";
  7.  
  8. for($i = 0; $i < 10; $i ++) {
  9. echo $i . "\r\n";
  10. }
  11.  
  12. ?>

猜你在找的PHP相关文章