Я пытаюсь заблокировать файл, используя функцию flock(), чтобы избежать ошибки перезаписи, но счетчик часто сбрасывается (возможно, для проблемы с чтением).PHP - проблема счетчика с использованием функции flock
numeri.txt (счетчик)
4895|533753
frame.php (PHP файл)
$filename="numeri.txt";
$contents=file_get_contents($filename);
if(([email protected]($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 дважды с небольшой задержкой? – zavg
Это счетчик, скрипт работает более 60 раз в минуту. Я использовал функцию стада, чтобы избежать проблем, но она все еще не работает. – Megadv