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.
Delphi — это объектно-ориентированный язык программирования со строгой типизацией переменных. Он используется в основном для написания прикладных, пользовательских программ. Простота использования позволяет рекомендовать его в качестве языка для начального обучения программированию. Хотя, если смотреть на перспективу, работодатели мало интересуются работниками, программирующими на Delphi.
Интересные материалы на сайте:
Рисуем на canvas с помощью JavaScript. Простой пример красивого рисунка.
Легко создаем черно-белые японские сканворды, распечатываем на принтере и разгадываем.
Рассматривается способ подключения ODBC драйверов в 64-битной версии Windows 7.
Исправляем проблему дублей страниц на сайте и склейку доменов с www.