14 марта 2006

Применение моего быстрого счётчика

Стало мне интересно, сколько же народу пользуется моим доморощенным RSS-фидом. "Доморощенным" - потому что самопал: PHP лезет на этот блог и делает из ссылок справа с надписью "Previous Posts" нормальный XML RSS файл.

Для измерений я использовал свой мега-счётчик, который я описывал раньше.

Итак, куда я его воткнул (можете посмотреть сорцы): в исходниках этого блога для картинки с надписью "RSS" (рядом с атомом) я прописал свойство id, равное "RSSImg". После этого, сразу после картинки, вставил JavaScript:

<script src="http://nic-nac-project.de/~a4/blog/rss_count.php"></script>


PHP-скрипт, указанный выше, возвращает JavaScript-код, прописывающий данные по статистике обращений к RSS-фиду в свойство alt многострадальной картинки с надписью "RSS" - можете подвести мышку и убедиться. Надпись на инглише, потому как сразу в кодировке утф8 я писать не умею.

Чудо-PHP-скрипт, который возвращает JavaScript-код, прост:

<?
$file = "data.txt";
function get_size()
{
  global $file;
  return filesize($file);
}
function get_todays()
{
  global $file;
  $cont = file($file);
  return strlen($cont[sizeof($cont)-1]);
}
?>var i=document.getElementById("RSSImg");if(i!=null)i.alt='Total downloads: <?=get_size()?>\nToday: <?=get_todays()?>';


Заметил минус: чтобы данные реально обновились в поле alt, нужно нажать Ctrl+F5. Кто-то кого-то где-то закэшировал втихаря...

3 комментов:

kpumuk комментирует...

Я вот тут подумал. Если у тебя в каждой строке хранится количество посетителей в день... то filesize() вернет неправильное общее количество посетителей. Он же присчитает +1 к каждому дню (символ перевода строки)! Или я не прав?

A4 комментирует...

Ты прав. И я об этом писал: если это первая запись за сегодня (дата модификации файла отличается от сегодняшней), то дописывается перенос строки, иначе нормальный символ (у меня это "1").

Другое дело, что в выводе результатов, описанных в этом посте, я этот факт не стал никак учитывать. Щас учту и напишу про это.

A4 комментирует...

То есть такой алгоритм гарантирует, что размер файла показывает правильное число посещений. А вот "сегодняшняя" строка показывает на 1 посещение меньше из-за переноса.

В первой строке, понятное дело, всё верно изначально.

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