1

いくつかの連続した php/bash スクリプトを実行する html ページがあり、次のスクリプトが開始される前に結果をページに表示したいと考えています。それは可能ですか?

例:

<html> <body>
<br>Html1<br>
<?php
echo "A";
sleep(4);
echo "B";
?>
<br>Html2<br>
<?php
echo "C";
sleep(4);
echo "D";
?>
<br>Html3<br>
</body> </html>

...ここでは、すべてが完了する前に何も表示されません。

4

1 に答える 1

2

これはおそらくバッファリングの問題です。

PHP の内部出力バッファをフラッシュするには、flush()連続する s の間に実行します。echo

ただし、Web サーバーが追加のバッファリングを行う可能性があり、ブラウザも同様に行う可能性があるため、変更がブラウザに表示されることは実際には保証されないことに注意してください。

他のバッファリングが含まれているかどうかをテストしたい場合は、各出力の後に長い HTML コメントを投稿できます。

例えば:

<?php
  echo "<!-- aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa ... aaa -->";
?>

コメントが十分に長い場合、バッファがいっぱいになり、強制的にフラッシュされます。

これはテスト専用であり、本番コードでは使用しないでください。

于 2012-05-06T14:18:54.407 に答える