Розглянемо приклад того, як створити власний лічильник відвідуваності для сайту на 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> відвідувачів"; // виводимо
?>
Важлива примітка
Найкраще робити лічильник відвідуваності з використанням бази даних (БД).
Адже якщо до файлу буде здійснено кілька одночасних звернень на запис/читання, він виконає лише одне з них. А це призведе до викривлення результату.
