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

Скільки відвідувачі на сайті

  1. Логіка скрипта:
  2. Плюси скрипта:
  3. Мінуси скрипта:

Нещодавно отримав невелике завдання від знайомого програміста, зробити функцію для його сайту яка б показувала скільки відвідувачів зараз на сайту, що цікаво не використовувати базу даних і як можна компактніше зробити функцію

Нещодавно отримав невелике завдання від знайомого програміста, зробити функцію для його сайту яка б показувала скільки відвідувачів зараз на сайту, що цікаво не використовувати базу даних і як можна компактніше зробити функцію. Я вирішив використовувати заради цього, звичайні текстовими файлами які не міститимуть нічого, отже не займатимуть місце.

Логіка скрипта:

1. Відвідувач входить на сайт, якщо він новий то створюється txt файл з його даними. Якщо ж він недавній відвідувач, то оновлюємо тільки останньою дату модифікації його файлу.

2. Скрипт отримує дані з повним шляхом будь-яких текстових файлів в масив. Перевіряємо коли були зроблені останні модифікації в текстовому файлі.

3. Якщо сума останньої модифікації в текстовому файлі (в unix секундах) + зазначений нами термін актуальності файлу в секундах, є менше поточного часу в секундах значить користувач покинув сайт або не справив обряду поновин сторінку в браузері.

Плюси скрипта:

- Компактна функція з ясно прокоментованим кодом і логічно названими змінними.

- Два види рахунку відвідувачів: 1 - Враховувати тільки IP. 2 - Враховувати IP і браузер

- Незалежний від бази даних

- Не вимагає ніяких конфігурації з боку PHP, вимагає тільки права 777 на папку з файлами.

Мінуси скрипта:

- Може виникнути помилка Permission denied якщо папка з текстовими файлами не має права 777. Але, це скоріше помилка з боку користувача а не скрипта.

- Він не показує поточні кількість людей на сайті, він показує скільки відвідувачів зайшли на сайт за вказаний вами інтервал часу.

- Будь-який скрипт можна написати б краще, скільки програмістів стільки і стилів програмування.

Подивимося код нашої функції

Не забудьте дати папки online_count права 777

<? Php function onlineCount () {// Термін актуальності файлу користувача (в секундах) $ RelevanceOfTheFile = 60; // Шлях до папки де лежать файли відвідувачів $ VisistersFileDir = $ _SERVER [ 'DOCUMENT_ROOT']. '/ Online_count /'; // Враховувати в назві файлу і браузер 1 - так, 0 - немає $ AddBrowserAtFileName = 0; // Зберігаємо новий файл постетітеля $ VisiterFileName = $ _SERVER [ 'REMOTE_ADDR']; if ($ AddBrowserAtFileName) {$ VisiterFileName. = $ _SERVER [ 'HTTP_USER_AGENT']; } $ VisiterFileName = $ VisistersFileDir.md5 ($ VisiterFileName). '. Txt'; $ OpenFile = fopen ($ VisiterFileName, "a +"); // Повний шлях до всіх файлів формату txt $ VisitersFiles = glob ($ VisistersFileDir. '*. Txt'); // Перевіряємо кількість відвідувачів за останні $ RelevanceOfTheFile секунд if (! Count ($ VisitersFiles)) {return 0; } Else {$ ActiveVisiters = 0; foreach ($ VisitersFiles as $ File) {$ AgeFile = filemtime ($ File); if (($ AgeFile + $ RelevanceOfTheFile)> = time ()) {$ ActiveVisiters + = 1; $ UpdateTheDateOfLastEdit = fopen ($ File, 'a +'); @fclose ($ UpdateTheDateOfLastEdit); } Else {@fclose ($ OpenFile); $ DeleteOldFile = unlink ($ File); }} Return $ ActiveVisiters; }} $ OnlineCount = onlineCount (); echo "Відвідувачів на сайт за останню хвилину:". $ OnlineCount; ?> Результат роботи скрипта: Відвідувачів на сайт за останню хвилину: 1 Завантажити архів з прикладом

Всі питання пишемо в коментарях.

Ще записи по темі

OnlineCount; ?