我正在尝试让PHP刷新工作2小时,我无法使其工作,在localhost中工作,但是当我将它拖到服务器上时它会停止工作。 代码是这样的:
<?php
ob_implicit_flush(true);
ob_end_flush();
for ($i=0; $i<5; $i++) {
echo $i.'<br>';
sleep(1);
}
?>
我尝试了很多其他版本,但我喜欢的所有版本只能在localhost上工作(因为这个),但不在我的服务器上,我在某处读到修复php.ini文件中的某些行会修复,但我正在使用Aruba托管Windows域名,所以我无法编辑php.ini,我该怎么办?
更新:我在其他两个免费托管服务上试了一下,它对它们起作用,这只是我的主要托管服务有问题:它可以是什么?
更新:由于我发现很多脚本都使用了ini_set,我试图检查它们设置的值,我不知道它们是否有用:
session.use_trans_sid 0
output_buffering 4096
zlib.output_compression Off
答案 0 :(得分:0)
尝试
<?php
ini_set('session.use_trans_sid', 0);
ob_implicit_flush(true);
ob_end_flush();
for ($i=0; $i<5; $i++) {
echo $i.'<br>';
sleep(1);
}
?>
答案 1 :(得分:0)
这样可行,但仅限于默认的apache环境:
<?php
ini_set('output_buffering', 0);
ini_set('zlib.output_compression', 0);
if( !ob_get_level() ){ ob_start(); }
else { ob_end_clean(); ob_start(); }
for ($i = 0; $i < 10; $i++) {
//For Nginx we have to reach minimum buffer size,
//so if it is not enough increment output
echo str_pad( $i . '<br>', 1024 + 10, ' ', STR_PAD_RIGHT );
flush();
ob_flush();
sleep(1);
}
Nginx需要更多配置:
通常在/etc/nginx/nginx.conf
gzip off;
proxy_buffering off;
fastcgi_buffer_size 1k; #set buffer to 1k
fastcgi_max_temp_file_size 0;
fastcgi_buffers 128 1k; #set max buffer size to 1k + 128*1k