2012-05-06 9 views
1

私はいくつかの連続したphp/bashスクリプトを実行するhtmlページを持っていて、次のスクリプトが始まる前にそのページに結果を表示したい。それは可能ですか?ハーフロードされたHTMLまたはPHPを表示する方法はありますか

例:すべてが行われる前に

<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> 

...ここには何も表示されません。

答えて

2

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

を実行して、echoを連続して実行して、PHPの内部出力バッファをフラッシュします。

ウェブサーバーが追加のバッファリングを行う可能性があり、ブラウザも変更される可能性がありますので、変更内容がブラウザに表示されることはありません。

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

:コメントは、それがフラッシュするために強制的に、バッファを満たすだろう十分な長さである場合

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

これはテスト用であることに注意してください。これは実動コードでは使用しないでください。

+0

それはできません。 (出力バッファリングが無効になっていても表示されません): '' flush() '](http://php.net/flush)ですか? – Ryan

+0

@minitechこれを有効にする必要があります – KBN

+0

phpバッファは内部でも 'ob_'関数を使用していません – Tibor

関連する問題