[英]PHP flush don't work
我試圖讓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文件中更改某些行而得到修復,但是我m使用Aruba托管Windows域,因此我無法編輯php.ini,我該怎么辦?
更新:我在其他兩個免費托管服務上試用了它,並且可以在它們上使用,這只是我的主要托管服務造成的問題:這可能是什么?
更新:由於我發現很多腳本都使用ini_set,因此我嘗試檢查它們設置的值,但我不知道它們是否有用:
session.use_trans_sid 0 output_buffering 4096 zlib.output_compression Off
嘗試
<?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);
}
?>
這有效,但僅在默認的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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.