在寻求连接到网络摄像头并通过中继脚本中继数据时,您'我们遇到了一个不受欢迎的缓冲问题。为了解决这个障碍,让我们深入研究 PHP 缓冲机制的细节及其对脚本的潜在影响。
第一层缓冲我们将遇到的是“输出缓冲区”,它专门管理发往响应正文的输出,而标头不受影响。默认情况下,PHP 在此缓冲区中缓冲最多 4096 字节,当违反该阈值或发生 echo 语句和类似的输出生成操作时,将刷新它。
要覆盖此默认行为,您可以选择禁用输出通过在 php.ini 文件中将 output_buffering 指令设置为 Off 来完全缓冲。或者,您可以通过尽早调用 ob_end_clean() 或 ob_end_flush() 来禁用单个脚本。
超越输出缓冲区位于一个称为“写入缓冲区”的附加缓冲层,它与 Web 服务器使用的任何缓冲区一起工作。当将 Apache 与 mod_php(不带 mod_gzip)结合使用时,调用lush() 会为您提供帮助,将输出刷新到浏览器。其他后端也可能支持这一点,尽管 PHP 手册没有提供任何保证。
最后,您有两种自动触发的方法在每个输出操作后调用flush():
有了这些见解,您就可以解决困扰中继脚本的缓冲问题,并为无缝数据铺平道路流媒体。
以上是如何禁用 PHP 中的输出缓冲以从网络摄像头传输数据?的详细内容。更多信息请关注PHP中文网其他相关文章!