PHP: аудит посещенных страниц на сайте
В этой статье рассмотрен пример подсчета просмотров страниц сайта. Так как код скрипта встроен прямо в страницы сайта, то результат не зависит от включенных-выключенных JavaScripts, отключенных картинкок или блокираторов рекламы.
В дизайн страницы или на каждую интересующую нас страницу вставляем такой код на языке программирования PHP:
<?php # формируем текстовую строку на файл со статистикой $fn='data/counter/'.date('Y_m_d').'.txt'; $tm=date('H:i:s'); # получаем адрес страницы $at=trim(getenv("REQUEST_URI")); # добавляем запись с временем и адресом страницы в конец файла со статистикой $f=@fopen($fn, "a+" ); @fputs($f, $tm."|".$at."\n"); @fclose($f); @chmod($fn,0666); ?>
Теперь рассмотрим код скрипта, подсчитывающий и выводящий статистику. В данном примере отбрасываются все адреса, которые были открыты не менее 4 раз. Для более посещаемых сайтов это значение можно увеличить, чтобы статистика не была слишком громоздкой.
Также мы убираем из статистики главную страницу сайта, так как она получается слишком "накрученной" из-за постоянных простукивалок доступности сайта.
Пример работы скриптов можно посмотреть тут.
<?php # идем по каталогу файлов $dir = "data/counter/"; if (is_dir($dir)) { if ($dh = opendir($dir)) { while (($file = readdir($dh)) !== false) { if (($file!='.')&&($file!='..')){ echo "<hr> Файл: $file <br> "; # читаем его содержимое $f=file($dir.$file); $co=sizeof($f); # разбиваем содержимое на части с формированием таблицы страниц $a1=array(); $a2=array(); $co_i=0; for ($i=0;$i<$co;$i++){ list($x1,$x2)=split("[|]",trim($f[$i])); # ищем в таблице наш адрес. если нашли - увеличиваем там счетчик, иначе - добавляем новый элемент if (trim($x2)!='/'){ $co2=sizeof($a1); $find=0; for($j=0;$j<$co2;$j++){ if ($a2[$j]==$x2){ $find=1; $a1[$j]=$a1[$j]+1; $j=$co2; } } if ($find==0){ array_push($a1,1); array_push($a2,$x2); } $co_i=$co_i+1; } } echo "Количество просмотров страниц (кроме главной): ".$co_i."<br> "; echo "Список страниц с просмотрами больше 3: "; # сортируем получившуюся таблицу по убыванию. unset($f); $co=sizeof($a1); for ($i=0;$i<$co;$i++){ for ($j=($co-1);$j>$i;$j--){ if ($a1[$i]<$a1[$j]){ $s=$a1[$i]; $a1[$i]=$a1[$j]; $a1[$j]=$s; $s=$a2[$i]; $a2[$i]=$a2[$j]; $a2[$j]=$s; } } } # выводим таблицу, и только те элементы, которые больше 3 ?> <ul> <span style="font-family:courier;"> <?php for ($i=0;$i<$co;$i++){ if ($a1[$i]>3){ if ($i<9){ $s1=' '; }else{$s1='';} $s2=''; if ($a1[$i]<100){$s2=' ';} if ($a1[$i]<10){$s2=' ';} echo $s1.($i+1).' ['.$a1[$i].'] '.$s2.$a2[$i].' <br>'."\n"; } } unset($a1); unset($a2); ?> </span></ul> <?php } } closedir($dh); } } ?>
Дальнейшим развитием статистики может стать построение графиков показа страниц за неделю, например.
С использованием HTML5 и рисования на canvas.
PHP — это язык программирования, основанный на использовании скриптов. Данный язык широко применяется для создания различных front-end и back-end веб-приложений. Поддерживается по-умолчанию большинством хостеров, являясь одним из лидеров среди языков программирования, предназначенных для создания динамических интерактивных сайтов.
Интересные материалы на сайте:
Для того, чтобы определить, нужно ли как-то обрабатывать файл, необходимо знать, какой у него тип.
Интересные алгоритмы проверки файлов на сжимаемость. Подойдут, например, для разработки собственного файлового архиватора.
Статья актуальна для Windows XP. Учимся менять приоритеты процессам, чтобы ускорить нужные или замедлить ненужные процессы.
Простой анализатор числового значения индекса цитирования от Яндекс.