0

たとえば、私はこのようなものを持っています:

<?php
  header("Content-Type: text/html; charset=UTF-8");
  set_time_limit(0); 
  ob_start("ob_gzhandler");

  while(true) :
    echo microtime(true)."<br>";
    ob_flush();
    flush(); 
    sleep(1);
  endwhile;

  ob_end_clean();
?>

このコードは私localhostに作用し、ページの1秒ごとに印刷されますがmicrotime()、何も印刷されていない状態で同じスクリプトを実行しようとするとShared Linux Hosting、ページの読み込み時間が無限になります。

私のホスティングで、無限ループのときに何かを印刷するにはどうすればよいですか?

たぶん私は自分のphp.iniファイルで何かを有効/無効にする必要がありますか?何か案は?

4

1 に答える 1

2

Gzipがすべてのデータを待機しているため、データを圧縮して送信できます。

共有ホスティングを使用しているため、これを完全に無効にするのは少し難しいかもしれません。したがって、次のいずれかを実行できます。

いずれかのPHPを使用して、LinuxホスティングでGzipを無効にします

ini_set('output_buffering','on');
ini_set('zlib.output_compression', 0)

.htaccessを使用してGzipを無効にする

SetEnv no-gzip dont-vary



編集: Linuxホストでもこれを試してみませんか?

<?php
ini_set('output_buffering','on');
ini_set('zlib.output_compression', 0);
ob_implicit_flush();
for($i=0;$i<100;$i++) {
      echo $i;
      echo str_repeat(" ", 500);
      ob_flush();
      flush();
      sleep(1);
}
?>

これは私のホストで動作します。あなたのホストで動作するかどうかを確認するのは興味深いでしょう。

于 2012-06-08T11:29:27.903 に答える