Счетчик php посещений, просмотров, скрипт
Подробно о счетчике посещений для сайта
- Самый простой счетчик посещений на php Через несколько лет счетчик посещаемости из первого пункта переродился в мой счетчик:
- Счетчик №2 посещаемости на php
- Старый вариант названия файла
- Счетчик посещений каждый день
-
Счетчик №2 посещаемости на php
Логика скрипта абсолютно аналогичная, что и в первом пункте.
Получаем адрес страницы.
Создаем уникальный идентификатор для названия файла из адреса.
Функция file_get_contents -получаем данные из файла.
Прибавляем 1.
Функция file_put_contents - записываем данные в файл.
И ещё можно посчитать уникальное количество посещений.
Единственное, что мы сделаем, это во всех подробностях рассмотрим два варианта создания имени файла для записи.
И расскажу несколько нюансов, которые будут подстерегать вас на этом пути!
Папка для сохранения результатов подсчета посещений на php
Если для вас не проблема создания пути до папки, то можно этот пункт пропустить!
Создаем путь на путь на сервере тоже самое - путь до корневой. Помещаем данный путь в переменную - $home(это просто удобно) :
$home = $_SERVER["DOCUMENT_ROOT"];Выведем echo $home... Результат у вас будет точно будет другим...
home/domen/dwweb_ru/wwwОт корневой до папки где будут храниться файлы, прописываем вручную
home/domen/dwweb_ru/www/__a-data/__COUNT_FOR_FILE/ Я вам даже ссылку на эту папку дам... здесь была ссылка на папку, но в связи с тем, что теперь у нас единая точка входа, то посмотреть вы на неё не сможете...
Создание названия файла для счетчика php
Сперва нам нужен алгоритм
Алгоритм создания названия фала для записи посещений
Нужно получить адрес из адресной строки, не будем останавливаться на этом, разбирали этот вопрос здесь
Из полученного уникального адреса создать уникальный идентификатор, который и будет служить названием файла, для этого будем использовать md5.
Добавляем расширение, я уже давно использую расширение ".dat" он лучше ".txt" проверено!
Создаем уникальное имя для файла посещаемости
Нам понадобится:
Как уже было выше сказано - получаем адрес страницы
$domen = $_SERVER["HTTP_X_FORWARDED_PROTO"]."://".$_SERVER["HTTP_HOST"];
$parse_url = parse_url($_SERVER["REQUEST_URI"], PHP_URL_PATH);
$real_page = $domen . $parse_url
echo $real_page;
Выведем живой результат по данной странице прямо здесь (
echo $real_page; ):https://dwweb.ru/page/php/024_schetchik_php.htmlСделаем из последней строки уникальный идентификатор:
echo md5($real_page);Аналогично выведем здесь результат:
3dc9b0122855e47f3624bb4d3b6914c0Добавляем расширение ".dat"
echo md5($real_page).".dat";Результат:
3dc9b0122855e47f3624bb4d3b6914c0.datМы подготовили название файла для записи количества посещений на странице.
Соединяем папку + имя файла, собираем скрипт посещаемости
Соединяем папку и название файла :
$path_to_file = $home."/__a-data/__COUNT_FOR_FILE/ ".md5($real_page).".dat";Результат:
home/domen/dwweb_ru/www/__a-data/__COUNT_FOR_FILE/3dc9b0122855e47f3624bb4d3b6914c0.datСобираем весь код счетчика посещаемости вместе:
$domen = $_SERVER["HTTP_X_FORWARDED_PROTO"]."://".$_SERVER["HTTP_HOST"];
$parse_url = parse_url($_SERVER["REQUEST_URI"], PHP_URL_PATH);
$real_page = $domen . $parse_url;
$path_to_file = $home."/путь_от_корневой/".md5($real_page).".dat";
$counter = @file_get_contents($path_to_file) +1;
$write = @file_put_contents($path_to_file, $counter);
Получение результата и вывод количества посещаемости из файла
Выше приведенный код счетчика размещаем после всех проверок на сайте, и когда 404 не срабатывает, т.е. существующая страница начинает загружаться, то запускаем наш счетчик!
И в нужно месте выводим количество посещений через php:
echo $counter;Поскольку наш код счетчика, почти копия приведенного то мы можем вывести количество посещений данной страницы
Либо, как вариант, можно в любой точке страницы получить количество посещений таким образом:
echo file_get_contents($home."/__a-data/__COUNT_FOR_FILE/".md5($real_page).".dat");Результат:
Это же число, вы можете наблюдать под первым заголовком, где в том числе находится дата....
Как получить количество посещений с другой страницы?
Если вам требуется получить количество посещений с другой страницы, то вам нужно передать на неё адрес требуемой страницы.
На сайте я использую данный счетчик со времени, когда написал самый первый скрипт счетчика
Пример вы можете посмотреть здесь - справа от названия страницы - количество посещений страницы выводится из файла.
Как это работает. Из базы в цикле получаем адрес страницы, который был записан туда при создании страницы.
$real_page получаем из базы. Новая строка - новая страница-новый адрес.
Адрес преобразуем в идентификатор.
Создаем путь до файла с записанными посещениями.
Получаем данные.
Выводим данные.
Код: $path_to_file = $home."/путь_от_корневой/".md5($real_page).".dat";
$counter = @file_get_contents($path_to_file);
В самом конце цикла убиваем $counter
$counter = '';
Считаем уникальные посещения.Как сделать, чтобы счетчик посещений считал только уникальные заходы на страницу?
Давайте сделаем такой счетчик!
Логика скрипта подсчета уникальных посещений:
Будем использовать сессию.
По условию if будем проверять, была ли создана сессия для данной страницы.
Если нет, то записываем + 1. И создаем сессию по адресу страницы $_SESSION[$real_page]
Как только сессия создана, более запись в файл не будет производиться. До того момента, пока сессия не уничтожится.
Код счетчика с подсчетом уникальных посещений:
session_start();
$home = $_SERVER["DOCUMENT_ROOT"];
$domen = $_SERVER["HTTP_X_FORWARDED_PROTO"]."://".$_SERVER["HTTP_HOST"];
$parse_url = parse_url($_SERVER["REQUEST_URI"], PHP_URL_PATH);
$real_page = $domen . $parse_url;
$path_to_file = $home."/ВАШ_ПУТЬ_ДО_ПАПКИ/ ".md5($real_page).".dat";
$counter = @file_get_contents($path_to_file );
if(!$_SESSION[$real_page])
{
@file_put_contents($path_to_file , ($counter + 1));
$_SESSION[$real_page] =1;
}
-
Счетчик посещений каждый день
Совсем недавно запустили новый вид счетчика - количество посещений в день.
На каждый новый день создается отдельная ячейка ассоциативного массива
Так же прибавляется +1.
Ограничение по сессии - засчитывается один раз.
Нам понадобятся две новые функции:
Нам понадобится $real_page, для ограничения по сессии :
$domen = $_SERVER["HTTP_X_FORWARDED_PROTO"]."://".$_SERVER["HTTP_HOST"];
$parse_url = parse_url($_SERVER["REQUEST_URI"], PHP_URL_PATH);
$real_page = $domen . $parse_url
$path_to_file - копируем какой-то из вариантов - вариант №1 или вариант №2 или создаем самостоятельно.Весь счетчик количество посещений по дням:
$domen = $_SERVER["HTTP_X_FORWARDED_PROTO"]."://".$_SERVER["HTTP_HOST"];
$parse_url = parse_url($_SERVER["REQUEST_URI"], PHP_URL_PATH);
$real_page = $domen . $parse_url
$ARRAY_COUNT_VISITS = @unserialize(file_get_contents($path_to_file ));
if(!$ARRAY_COUNT_VISITS) { $ARRAY_COUNT_VISITS = array(); }
if (!$_SESSION[$real_page])
{
$ARRAY_COUNT_VISITS[(date('d.m.Y'))] ++;
$ARRAY_COUNT_VISITS['all'] ++;
@file_put_contents($path_to_file , serialize($ARRAY_COUNT_VISITS));
$_SESSION[$real_page] = 1;
}
Выводим результат через print_r :
print_r $ARRAY_COUNT_VISITS;Результат: (в all добавили показания старого счетчика.)
Этот массив можно преобразовать в график. Нужно только скриптик написать
Поскольку массив каждый раз увеличивается, скрыли его по д "катом"
Показать
Вывод счетчика в график посещений
17.02.2021 Наконец-то дошли руки до создания графика из массива - давно такой хотел сделать.
Как известно - никогда, ни на что не хватает времени - чем же ты занимаешься! Хочется спросить!
Может... мне тут подумалось... тему про графики замутить!?
(Как делал данный график)
Считаем уникальные айпи в день
Интересный поисковый запрос "php скрипт который считает уникальные айпи в день". +$path_to_file смотри выше - это путь до файла с именем файла.(поскольку - адреса у всех сайтов разные, поэтому - эта неизвестная переменная. Выше разбирали два варианта )
Для этого нам понадобится айпи зашедшего.
Берем выше приведенный скрипт подсчета посещений в день и добавляем подсчет по "IP"
$_SERVER['REMOTE_ADDR']Здесь мы немного должны разобраться! Зачем добавлять еще один массив вовнутрь ячейки даты. Дело в том, что день - это будет 1 ячейкой, и "IP" - будет тоже ячейкой, которых может быть множество в одном дне. И уже уникальному "IP" добавляем счетчик!
$ARRAY_COUNT_IP[date('d.m.Y')][$_SERVER['REMOTE_ADDR']] ++ ;Пересоберем счетчик для подсчета уникальных "IP" Логика абсолютно та же, что и выше приведенный счетчик, только запись будет производиться по уникальному "IP"
$domen = $_SERVER["HTTP_X_FORWARDED_PROTO"]."://".$_SERVER["HTTP_HOST"];
$parse_url = parse_url($_SERVER["REQUEST_URI"], PHP_URL_PATH);
$real_page = $domen . $parse_url
$ARRAY_COUNT_IP = @unserialize(file_get_contents($path_to_file ));
if(!$ARRAY_COUNT_IP) { $ARRAY_COUNT_IP = array(); }
if (!$_SESSION[$real_page])
{
$ARRAY_COUNT_IP[date('d.m.Y')][$_SERVER['REMOTE_ADDR']] ++ ;
@file_put_contents($path_to_file , serialize($ARRAY_COUNT_IP));
$_SESSION[$real_page] = 1;
}
Результат получится вот такой: Array
(
[11.04.2021] => Array
(
[3.234.221.67] => 1
)
)
Самый простой счетчик посещений на php
Алгоритм работы самого простого счетчика посещений на php
Для каждой уникальной страницы с контентом, должен создаваться свой собственный уникальный файл, для записи количества просмотров.
А, что есть уникального у страницы, чтобы каким-то образом эту уникальность превратить в название файла для записи данных? Правильно - её адрес. Здесь может быть множество решений!
В переменную $counter получаем с помощью file_get_contents данные из файла и сразу прибавляем единицу.
С помощью функции file_put_contents перезаписываем данные в файле. Если данные записались, проверяем существует ли переменная $write, если да, то можно сообщить, что "Ваш вход засчитан" - эта информация пользователю не нужна, используется в момент тестирования счетчика.
Скрипт самого простого счетчика на php
<?
$path_to_file = '';//будет зависеть от вашего желания и структуры ваших адресов сайта
$counter = @file_get_contents($path_to_file) +1;
$write = @file_put_contents($path_to_file, $counter);
if($write) { $info = '<br>Ваш вход засчитан!'; }
echo 'Всего перезагрузок : <span style="color:red;">'.$counter.'</span>' . $info;
?>
Это базовый скрипт счетчика, который можно модифицировать до бесконечности!
Как создать путь и имя файла для счетчика?
Я специально не стал загромождать данный счетчик, именем и путем до файла - "Имя файла вариант №1
Имя файла вариант №2
Старый вариант названия файла
Старый вариант названия файл не стал удалять какое-то время. Когда начал пользоваться новым названием файла пункт 2.2, но потом вернулся к старому названию файла для записи посещений!Сравните два названия файла, если вы думаете как я , то увидите разницу без объяснений! Новое название:
и старое:
Новый вариант названия файла обезличенный и ничего не говорит ни вам, ни мне!
А вот второй файл говорит, может он вам никогда и не пригодится, но по виду старый все же приятнее.
Не буду удалять этот вариант, может кому и пригодится...
От нового отличается тем, что использовали функцию str_replace с помощью неё заменили массив знаков - $array_replace = array("&", "?", "=" , '/');$array_replace = array("&", "?", "=" , '/');
$url_looks = $home.'/__a-data/__COUNT_FOR_FILE/'. str_replace($array_replace, "_", $real_page).'.html' ;
В результате, мы получаем, такой адрес для записи количества просмотров:
Страница полностью переписана...
Друзья! Для всех кто не в курсе, то мы периодически возвращаемся к старым страницам и одна из таких страниц – это счетчик на PHP, и я его написал, наверно одним из первых кодов вообще!
И сейчас – это реально невозможно понять и прочитать! Поэтому весь старый контент в мусорку!
Полностью переписали данную страницу!
Надеюсь стало понятнее...
counter visitors phpсчетчик phpphp счетчик посещенийсчетчик просмотров phpсчетчик php на сайтсчетчик посещений сайта phpкак сделать счетчик phpphp счетчик кликовсчетчик просмотров страницы phpскрипт счетчик phpphp счетчик посетителейсчетчик посещений страницы php счетчик переходов по ссылке php простой счетчик посещаемости сайта phpсчетчик посещения страницы phpустановить счетчик на сайт в phpсчетчик просмотров страницы сайта на phpследим за посещением сайта на phpзаписать посещаемость страницы phpcounter для сайта phpсчетчик просмотра страницы для сайтаскрипт счетчика посещений сайта phpстатистика посещения страницы на сайте на php с sessionпростой счетчик просмотров страницы сайта на phpсчетчик для сайта на php с сохранением в файлсчетчик для сайта на php своими рукамиphp скрипт для сайта посещаемостьскрипт посещений для сайтасчетчик сайта на файлахсчетчик посещений на phpкак сделать счетчик количество заходов на сайтсоздать свой счетчик для сайтакак узнать сколько раз просматривалась страница php