Як створити лічильник відвідуваності сайту на PHP без використання бази даних

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

Лічильник відвідуваності сайту на PHP без використання БД

Лічильник відображає статистику лише за поточний день

<?php
$today = getdate();
$myday = $today["mday"]; // отримуємо сьогоднішній день
$ip = $_SERVER['REMOTE_ADDR']; // отримуємо IP відвідувача
$myfile = fopen("mycount.txt","a"); // створюємо порожній файл mycount.txt якщо його немає
fclose($myfile);
$mydaten = file("mycount.txt");
$count = trim($mydaten[0],"\r\n"); // отримати попередню кількість відвідувачів
$myday1 = trim($mydaten[1],"\r\n"); // отримуємо день останнього відвідування
if($myday != $myday1){ // якщо він не збігається із сьогоднішнім днем
    $myfile = fopen("ip_list.txt","w"); // створюємо по-новому файл ip_list.txt
    fwrite($myfile,"\r\n".$ip); // записуємо IP відвідувача
    fclose($myfile);
    $myfile = fopen("mycount.txt","w");
    $count = 0; // обнулюємо лічильник відвідувань
    fwrite($myfile,$count."\r\n".$myday);
    fclose($myfile);
}
$ip_array = file("ip_list.txt"); // отримуємо масив з IP відвідувачів
$used_ip = array_search($ip,$ip_array); // шукаємо в ньому поточний IP
if($used_ip == false){ // якщо він не знаходиться
    $myfile = fopen("ip_list.txt","a");
    fwrite($myfile,"\r\n".$ip); // то додаємо
    fclose($myfile);
    $ip_array = file("ip_list.txt"); // отримуємо масив з IP відвідувачів
}
$myusers = sizeof($ip_array)-1; // отримуємо кількість відвідувачів
$count++; // збільшуємо підрахунок відвідувань на один
$myfile = fopen("mycount.txt","w");
fwrite($myfile,$count."\r\n".$myday); // записуємо оновлену інформацію
fclose($myfile);
echo "Сьогодні <b>".$count."</b> відвідувань та <b>".$myusers."</b> відвідувачів"; // виводимо
?>

Важлива примітка

Найкраще робити лічильник відвідуваності з використанням бази даних (БД).

Адже якщо до файлу буде здійснено кілька одночасних звернень на запис/читання, він виконає лише одне з них. А це призведе до викривлення результату.

Main Menu