2011-10-26 45 views
0

我搜索了所有問題,我收到了所有的答案和建議,但沒有人幫助我。ob_flush不工作

他是我的代碼:

<?php 

ini_alter("memory_limit", "1024M"); 
ini_set('display_errors', 0); 
ini_set('implicit_flush', 'On'); //Inutil já que usa a funcao,, mas vamo testar 
error_reporting(0); 
set_time_limit(0); 
ob_implicit_flush(true); 
ob_end_clean(); 
while (ob_get_level()) 
    ob_end_flush(); 

ob_start(); 
for ($i = 0; $i < 5; $i++) { 
    echo $i . '<br>'; 
    ob_flush(); 
    flush(); 
    sleep(5); 
} 
echo ini_get('ob_implicit_flush'); 
die; 
?> 

而且是行不通的。 如果我在while之後使用echo ob_get_level(),則該值爲零。 在php.ini中output_buffering值爲Off且ob_implicit_flush爲On

在我的桌面(ubuntu,apache 2.2,php5.3)中工作正常。 但在我的服務器(centos,httpd 2.2,php5.2),不起作用...

任何ideias?

回答

0

您的php頁面是否被壓縮?如果使用gzip壓縮服務器,則無法刷新寫入緩衝區。

+0

with @apache_setenv('no-gzip',1); @ini_set('zlib.output_compression',0);仍然不起作用 – StiveKnx

+0

不幸的是,這些標頭並不總是在某些託管環境中工作。在轉到下一個選項之前,最好確保它沒有壓縮你的頁面。 – Jace