gpt4 book ai didi

php - 如何在所有浏览器的每个回显中正确显示输出?

转载 作者:可可西里 更新时间:2023-11-01 12:48:02 24 4
gpt4 key购买 nike

我将我的文件移到了一个新服务器上,并且我有一个脚本可以立即在浏览器的每个 echo 上显示输出,但这在新服务器上不起作用。这是我的测试代码:

@ini_set('output_buffering', 0); @ini_set('implicit_flush', 1);

for ($i = 0; $i < ob_get_level(); $i++) ob_end_flush();

ob_implicit_flush(1);

ignore_user_abort(true); set_time_limit(0);


$max_wait_time = 30;

$begin_time = microtime(true);

$elapsed_time = 0;


while(!connection_aborted()) {

echo $i++.str_repeat(' ', 1020).'<br/>';

flush(); ob_flush();

usleep(1000000);

if($elapsed_time > $max_wait_time){ break; }

$elapsed_time++;

}

我已经尝试了一些已经变成上面的东西。但是打开输出缓冲和刷新对我没有用。我已经在 Chrome 和 Firefox 上对此进行了测试,它们都在最后输出了所有内容。

有什么想法吗?

最佳答案

摘自 flush documentation :

flush() may not be able to override the buffering scheme of your web server and it has no effect on any client-side buffering in the browser. [...]

Several servers, especially on Win32, will still buffer the output from your script until it terminates before transmitting the results to the browser.

Server modules for Apache like mod_gzip may do buffering of their own that will cause flush() to not result in data being sent immediately to the client.

很有可能您已更改为不同的 Web 服务器(或 Web 服务器配置),它会在输出之前缓冲整个脚本的输出。

关于php - 如何在所有浏览器的每个回显中正确显示输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5324963/

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