PHP をいじり始めたところ、Web ページのヒット カウンターとして機能するはずの次のコード スニペットを見つけました。
/* counter */
//opens countlog.txt to read the number of hits
$datei = fopen("/countlog.txt","r");
$count = fgets($datei,1000);
fclose($datei);
$count=$count + 1 ;
echo "$count" ;
echo " hits" ;
echo "\n" ;
// opens countlog.txt to change new hit number
$datei = fopen("/countlog.txt","w");
fwrite($datei, $count);
fclose($datei);
私が読んだことに基づいて、サーバー上で複数のリクエストを同時に実行できます。countlog.txt
したがって、このファイルに同時にアクセスする可能性があります(正しいですか?)。もしそうなら、このコードは忙しいウェブサイトでは機能しません (正しいですか?)。このコードを変更して、忙しいウェブサイトで機能させるにはどうすればよいでしょうか? 複数のリクエスト間で共有される PHP でロックを使用できますか?
PS: 質問はカウンターに関するものではありません。可能であれば、回答で SQL を使用しないでください。