Создание счетчика «онлайн на сайте»

Для реализации счетчика, который бы показывал, сколько человек в данный момент на сайте, можно использовать любой из бесплатных сервисов статистики.

Для эксперимента понадобится Firebug, для анализа запросов от браузера к серверу и обратно. Экспериментировать будем с сервисом статистики hit.ua, на котором необходимо сперва зарегистрироваться и установить их код себе на сайт.

Переходим на страницу своей статистики http://hit.ua/site_view/27441 и анализируем код, где 27441 — это id вашего сайта в системе hit.ua.

Включив Firebug, понимаем, что hit.ua для поддержания актуальных данных на этой странице — каждую секунду посылает GET запрос на страницу http://hit.ua/stat?i=27441 и получает следующий ответ:


223,211,21,14 (Хосты, посетители, хиты, онлайн)

Пишем простой парсер:


<?php
$id = '27441'; // Идентификатор сайта в системе
$contents = file_get_contents( 'http://hit.ua/stat?i='.$id );
$arr =  explode( ",", $contents );
$online = (!empty($arr)) ? $arr[3] : 0;
echo $online;
?>

Теперь в переменной $online у нас хранится количество посетителей онлайн.

Источник:  Yii.DbHelp

Для вставки кода используйте HTML-теги
<pre><code class="php">ваш код</code></pre>

  • Василий

    А как сделать что бы ещё и обновлялся этот счетчик онлайн?

    • Вынесите скрипт в отдельный файл и вызывается его по таймеру на javascript через ajax, например.

      • Василий

        Так будет великая нагрузка на сервер, если файл будет расположен на сервере, так как много запросов будет из-за большого количества онлайн пользователей. Нельзя прописать что-то сразу в коде?

        • JSONP посмотрите, это ajax-запросы на удаленный сервер

  • vricov

    Спасибо, только в четвертой строке ошибка: переменную $contents заменить на $handle
    > $arr = explode(«,», $contents);

    • Спасибо, поправил

  • Интересно! А самое главное — ни каких гетов каждую секунду 🙂