さくらインターネットのレンタルサーバで遅延処理後に随時echo内容を画面表示させたい
さくらインエーネットのレンタルサーバにて下記のサイトのサンプルを実現したいです。
[SOLVED] Flush(), ob_flush() not working in PHP (Disabling gzip through htaccess) | Absolutely Tech
<?php
include('common.php');
ini_set('output_buffering','on');
ini_set('zlib.output_compression', 0);
//ini_set('implicit_flush',1);
ob_implicit_flush();
for($i=0;$i<10;$i++) {
echo $i;
echo str_repeat(" ", 500);
ob_flush();
flush();
sleep(1);
}
?>
このサンプルで期待される処理結果は、
1秒間隔で 0→01→012→0123→・・・→0123456789 と1桁ずつカウントアップされて表示されていくという動きになります。
このサンプルをさくらレンタルサーバで実行した場合、
10秒間遅延が発生した後、画面に0~9の文字が一気に表示されるという期待とは異なる処理が行われました。
ちなみに、サンプルでは”gzip compression”を無効化する事で実現が可能だという風に示されておりますが、色々調べて、試みたものの、さくらインターネットでgzip compressionを無効化する事ができませんでした。
例えば、.htaccessに
SetEnv no-gzip dont-vary
と記載してもダメでしたし、他にも以下のサイトに記載されている設定を試してみたのですがダメでした。
I am not able to disable gzip
その他以下のサイトも参考にして、"ob_end_flush()","ob_start('mb_output_handler')"等の対策も試してみましたがうまく行かず。。。
PHPでプログレス表示を行うには?(tp://www.enbridge.jp/blog/2007/08/17232951.php)
また、さくらのレンタルサーバはApacheの設定は変更できないので、Apacheサイドからのアプローチは試みておりません。
なお、ローカル環境(XAMP)では期待した結果が表示されました
(ただ、XAMPはgzip compressionがenableになっているのですが・・・)。
さらに、さくらのVPSでも正常に動作することを確認しました。
どのような設定を行えば前述したサンプルが期待通りに動くのかわからない状態です。。
ご存じの方がおられましたらご教示のほどよろしくお願いいたします。