私のphpスクリプトに何か問題があるようですが、それが何であるかわかりません。間違っていると思われる唯一のことは、キャッシュに関係することですが、よくわかりません。これが私のスクリプトです。コードの下で何が起こったのかを説明します。
<?php
set_time_limit(0);
header('Content-Type:text/event-stream');
$prevmod=$lastmod=filemtime('chattext.txt');
function waitformod(){
global $lastmod;
global $prevmod;
while($prevmod==$lastmod){
usleep(100000);
clearstatcache();
$lastmod=filemtime('chattext.txt');
}
echo 'data:'.file_get_contents('chattext.txt').PHP_EOL.PHP_EOL;
flush();
$prevmod=$lastmod;
}
while(true){
waitformod();
}
?>
これは JavaScript EventSource で使用され、変更されるたびに chattext.txt の内容を送信することになっています。ただし、ファイルは何も出力しません。無限ループのせいだと思います。これを修正する方法はありますか?