php は、set_time_limit(0) を通じて PHP スクリプトのタイムアウト制限をキャンセルして、長時間接続の効果を実現できます。
コード例は次のとおりです:
echo "3 秒ごとに出力
";
set_time_limit(0); //php プログラムがタイムアウトして終了しないようにします
ながら(1) {
echo date("H:i:s")."
";
ob_flush();
flash(); //PHP バッファー データを更新して出力します
sleep(3) //3 秒遅延します
}
?>
サンプルコード 2:
header("接続:キープアライブ");
header("プロキシ接続:キープアライブ");
for($i=0;$i<60;$i++) {
print 'text'.$i.'
';
ob_flush();
フラッシュ();
睡眠(1);
clearstatcache();
}
1. フラッシュと ob_flush の正しい順序は、次のように、最初に ob_flush、次にフラッシュする必要があります。 ob_flush();
フラッシュ();
WebサーバーのOSがWindowsの場合は、順序を逆にするか、ob_flush()を使用しなくても問題ありません。ただし、Linux システムでは、出力バッファをフラッシュできません。
一部の Web サーバーの Output_buffering はデフォルトで 4069 文字以上になっています。つまり、サーバーが出力バッファをフラッシュする前に、出力コンテンツが 4069 文字に達する必要があります。フラッシュを確実に効果的にするには、次のステートメントを使用するのが最適です。 ob_flush() 関数の前:
print str_repeat(" ", 4096);
Output_buffering 値に達していることを確認します。
$i をエコーします。'
';
ob_flush();
フラッシュ();
睡眠(1);
}
ob_end_flush();
http://www.bkjia.com/PHPjc/327001.html