gpt4 book ai didi

PHP 缓冲区 ob_flush() 与 flush()

转载 作者:IT老高 更新时间:2023-10-28 11:55:48 28 4
gpt4 key购买 nike

ob_flush()flush() 有什么区别,为什么必须同时调用?

ob_flush() reference说:

This function will send the contents of the output buffer (if any).

flush() reference说:

Flushes the write buffers of PHP and whatever backend PHP is using (CGI, a web server, etc).

但是,它继续说:

[it] may not be able to override the buffering scheme of your web server…

所以,在我看来,我可以一直使用 ob_flush()。但是,当我这样做时,我会得到奇怪的结果。有人可以简单地解释一下这里发生了什么吗?

最佳答案

ob_flush 发送一个应用程序启动的缓冲区。在任何 PHP 脚本中可能有多个嵌套的 ob_start()ob_flush 将当前内容传递给上层。

PHP 本身可能(自行决定)缓冲输出。这取决于后端。但通常 FastCGI 有自己的套接字缓冲区。因此,还需要调用 flush() 以将当前内容发送到 Web 服务器。

现在,Web 服务器本身可能会实现另一个缓冲方案(mod_deflate 或内容过滤器),您对此没有任何影响。但这很少见,因为需要专门配置。

不管怎样,两者都用。

关于PHP 缓冲区 ob_flush() 与 flush(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4191385/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com