2011-10-26 6 views
0

私はすべての質問で検索しましたが、私はすべての回答と提案を得ましたが、どれも私を助けませんでした。ob_flush not working

彼は私のコードです:

<?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の値がオフで、ob_implicit_flushがオンです

私のデスクトップ(ubuntu、apache 2.2、php5.3)では問題ありません。 しかし、私のサーバー(centos、httpd 2.2、php5.2)では動作しません...

ideias?

答えて

0

あなたのページは圧縮されていますか? gzipでサーバ上で圧縮している場合、書き込みバッファをフラッシュすることはできません。

+0

と@apache_setenv( 'no-gzip'、1); @ini_set( 'zlib.output_compression'、0);まだ動作しません – StiveKnx

+0

残念ながら、これらのヘッダーは、特定のホスティング環境では動作しません。次のオプションに移動する前にページを圧縮していないことを確認してください。 – Jace