【发布时间】:2013-04-12 22:07:22
【问题描述】:
我正在尝试使用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);
}
有时计数器返回“|1”而不是“4895|533754”。
我该如何解决?
【问题讨论】:
-
可能你运行脚本frame.php两次,延迟很小?
-
这是一个计数器,脚本在一分钟内运行超过 60 次。我使用了羊群功能来避免问题,但它仍然无法正常工作。