15 марта 2006

Маленький фикс счётчика

Тут в комментах kpumuk заметил, что счётчик может показывать дизинфу, если скрипт будет неправильно учитывать перенос строки как дополнительный символ. У меня это учитывается при инкременте счётчика, но я поперва забил учитывать это в считывателе счётчика. По идее, при считывании код должен прибавлять 1 к результату, если это не первая строка:

function get_todays()
{
  global $file;
  $cont = file($file);
  $size = sizeof($cont);
  return ($size<2 ? strlen($cont[0]) : strlen($cont[$size-1])+1);
}


Но я подумал, что первая строка (первый день) всего одна, поэтому проверять только ради неё каждый раз - тупо. В итоге я просто добавляю единичку к длине последней строчки:

  return strlen($cont[sizeof($cont)-1])+1;


Что приятно - народу много оказывается :]

4 комментов:

Анонимный комментирует...

Спасибо за оперативность :-)
Мне вот интересно, через месяцок скажешь, сколько файл весит?

А4 комментирует...

Обовъязково!

А4 комментирует...

Я тут прикинул - даже если 100 человек в день (пока меньше), то получается около 3000 байт = 2.9 Кб в месяц. Очевидно, что чтобы набежал несчастный мегабайт, нужно ждать около 350 месяцев, т.е. 14 лет. Так что не такой уж большой расход.

Интересно, можно ли придумать другую систему без БД, имеющую поддержку ежедневной статистики и занимающую так мало места? :]

А4 комментирует...

Да, кстати, забыл сказать: я прикрутил онлайновую систему слежения за размером файла счётчика. Теперь любой читатель может узнать его в режиме реального времени. Для этого надо подвести курсор к картинке с надписью RSS, громко сказать вслух свою фамилию и звание, и затем прочитать размер файла в поле "Total downloads" :]

Отправить комментарий