カードリーダーからライブフィードをキャプチャし、PHP を使用して印刷しようとしています。
<?php
$i=0;
for(;;)
{
$subdata=file_get_contents("/home/openflow/subscribedata.txt");
$subdata2=file_get_contents("/home/openflow/subscribedatatemp.txt");
if($subdata!=$subdata2)
{
copy("/home/openflow/subscribedatatemp.txt","/home/openflow/subscribedata.txt");
$sub=file_get_contents("/home/openflow/subscribedata.txt");
$i++;
echo "\n". $i."--".$sub;
}
}
?>
for ループを無限ループとして使用しています。新しいデータがあるたびに、私のカード リーダー スクリプトはそれをsubscribedatatemp.txtファイルに書き込み、上記のスクリプトはsubscribedatatemp.txt (最新のエントリ) とsubscribedata.txt (前のエントリ)の違いをチェックします。違いがある場合は、最新のものを前のものにコピーし、最新のデータをエコーする必要があります。
問題は、上記の PHP コードを実行しているときに、しばらく何も表示されず、しばらくするとブラウザの読み込みが停止し、読み込み中に取得したすべてのデータが表示されることです。
これは、ループの実行が停止され、while ループの終了後にすべてのデータが出力されていることを示していますよね? どうすればこれを修正できますか?