上書きエラーを回避するために flock() 関数を使用してファイルをブロックしようとしていますが、カウンターが頻繁にリセットされます (おそらく読み取りの問題のため)。
numeri.txt (カウンター)
4895|533753
frame.php (PHP ファイル)
$filename="numeri.txt";
$contents=file_get_contents($filename);
if(($fp=@fopen($filename,'w'))!==false)
{
if(flock($fp,LOCK_EX))
{
$contents=explode("|",$contents);
$clicks=$contents[0];
$impressions=$contents[1]+1;
fwrite($fp,$clicks."|".$impressions);
flock($fp,LOCK_UN);
}
fclose($fp);
}
カウンターが "4895|533754" ではなく "|1" を返すことがあります。
どうすれば修正できますか?