有没有办法在脚本执行时逐步输出PHP?

Iai*_*ser 4 php streaming outputstream output-buffering progress-bar

所以我正在编写一个一次性脚本供我个人单独使用,我希望能够看到这个过程的进展情况.基本上我正在处理几千个媒体发布并将它们发送到我们的新CMS.

所以我没有锤击CMS,我sleep在每5次请求后制作脚本几秒钟.

我希望 - 当脚本正在执行时 - 能够看到我echo告诉我脚本将要睡眠或者最后一次与webservice的交易成功.

这可能在PHP?

谢谢你的帮助!

伊恩

ani*_*son 11

使用ob_flush在缓冲发送任何数据.因此,您可以执行一些命令,刷新输出,然后在处理更多命令之前稍微休眠一下.

我注意到在特别长的脚本上,PHP似乎开始发送它在缓冲区中的内容,即使脚本还没有完成执行

默认情况下,在整个脚本完成执行之前,PHP永远不会回显任何内容.这只是你的浏览器试图一次输出太多数据,或者你有一些东西导致它在某处冲洗.

  • PHP缓冲输出,在长脚本上这个缓冲区变满,所以它的数据被发送出去(你可以调整缓冲区的大小或强制php在发送之前缓冲所有输出) (4认同)
  • 我正在给它打勾,因为它引导我找到正确的答案.其他人这样做请注意:你需要在你的php.ini文件中将`output_buffering`设置为0 - 这是一个性能打击我会让你相信所以它对我有用 - 但是我对使用它感到怀疑生产.另外,在调用`ob_flush()`之后,还需要调用`flush()`来发送输出.希望这可以帮助! (3认同)