如何在PHP中立即打印出echo?
默认情况下,在整个页面执行完毕之前,它不会打印任何内容。
有没有什么功能可以让它立刻冲出来?
但不是多次调用 ob_end_flush() ,这不是我想要的。
希望你们能抓住我吗?
By default it will not print out anything until the whole page has finished executing.
Is there any function that can make it flush out right away?
But not by calling ob_end_flush()
multiple times, which is not what I want.
Hope you guys got me?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
如果输出缓冲打开,那么刷新它是向浏览器输出任何内容的唯一方法。 如果您想立即输出,请关闭输出缓冲。 如果这不在你的控制范围内,你可以在脚本的开头调用 ob_end_flush() ,这将关闭输出缓冲。 但是,无法让某些消息通过,而某些消息则不能(无需编写自定义 echo/print 函数),
调用 ob_end_flush() 将刷新并关闭最顶部的输出缓冲区。 为了确保所有输出缓冲区都关闭并刷新,您可以轻松执行以下操作:
If output buffering is on, then flushing it is the only way to output anything to the browser. If you want to output right away then turn of output buffering. If that is not in your control you can just call ob_end_flush() at the srart of your script which will turn the output buffering off. There is no way however to let some messages pass, and some not (without writing custom echo/print functions)
calling ob_end_flush() will flush and turn off the top most output buffer. To make sure all output buffers are turned off and flushes you can easily do this:
这将取决于您的网络服务器。 然而,调用 flush 将刷新当前打开的任何缓冲区的输出,正如链接页面上所述:
It will depend on your webserver. Calling flush will flush the output of whatever current buffer is open, however, as it says on the linked page:
您可以关闭开发/测试服务器上的输出缓冲。 更改 php 中的 output_buffering 变量。 ini 配置文件。
You could turn off output-buffering on your development/test-server. Change the output_buffering variable in your php.ini configuration file.
当没有要刷新的缓冲区时,如果在脚本顶部使用 ob_end_flush() 将引发通知。 如果您计划设置 cookie 或标头,这可能是一个问题。 我发现它并没有影响我的共享服务器(Rackspace 经销商)上的缓冲。
ob_end_flush() will throw a notice if it is used at the top of the script when there is no buffer to flush. This may be an issue if you are planning to set cookies or headers. I found it did not affect the buffering on my shared server (Rackspace Reseller).