Простой счетчик посещений ⇐ Php
-
Anonymous
Простой счетчик посещений
У меня есть простой счетчик посещений для моего сайта, который выглядит так:
if(file_exists($statfile)) $count=file_get_contents($statfile)+1; file_put_contents($statfile, $count, LOCK_EX); Файл статистики представляет собой простой текстовый файл, который больше ничего не содержит для подсчета количества посещений этой подстраницы. При получении попадания по нему мы читаем содержимое файла, увеличиваем число и записываем его обратно.
Все в порядке, за исключением того, что в случайные моменты подсчет возобновляется. Я не знаю почему. Я надеялся, что LOCK_EX решит эту проблему, но этого не произошло, он перезапустился.
Мое более раннее решение заключалось в хранении всех счетчиков в одном файле в виде сериализованного массива, но файл часто повреждался, однако на тот момент он был даже небольшим, 55 чисел.
Что я делаю не так?
Я понятия не имею, что попробовать. В любой день счетчик был выше 20 тысяч, но на следующее утро я вижу несколько сотен. Примечание. База данных не является вариантом.
У меня есть простой счетчик посещений для моего сайта, который выглядит так:
if(file_exists($statfile)) $count=file_get_contents($statfile)+1; file_put_contents($statfile, $count, LOCK_EX); Файл статистики представляет собой простой текстовый файл, который больше ничего не содержит для подсчета количества посещений этой подстраницы. При получении попадания по нему мы читаем содержимое файла, увеличиваем число и записываем его обратно.
Все в порядке, за исключением того, что в случайные моменты подсчет возобновляется. Я не знаю почему. Я надеялся, что LOCK_EX решит эту проблему, но этого не произошло, он перезапустился.
Мое более раннее решение заключалось в хранении всех счетчиков в одном файле в виде сериализованного массива, но файл часто повреждался, однако на тот момент он был даже небольшим, 55 чисел.
Что я делаю не так?
Я понятия не имею, что попробовать. В любой день счетчик был выше 20 тысяч, но на следующее утро я вижу несколько сотен. Примечание. База данных не является вариантом.
Мобильная версия