",'>',$text); $text=str_replace("<",'<',$text); $text=str_replace("\"",'"',$text); $text=preg_replace("/\n\n/",'

',$text); $text=preg_replace("/\n/",'
',$text); $text=preg_replace("/\\\$/",'$',$text); $text=preg_replace("/\r/",'',$text); $text=preg_replace("/\\\/",'\',$text); $text=str_replace("\r\n","
",$text); $text=str_replace("\n\n",'

',$text); $text=str_replace("\n",'
',$text); $text=str_replace("\t",'',$text); $text=str_replace("\r",'',$text); $text=str_replace(' ',' ',$text); return $text; } // 26-12-2018 - таблица стилей простая $shapka="Информация по посещаемости сайта$style "; $host=replacer($_SERVER["HTTP_HOST"]); $self=replacer($_SERVER["PHP_SELF"]); $cnturl="https://$host$self"; $cnturl=str_replace("info.php", "", $cnturl); if (is_file("$coundir/mainbase.csv")) $ftime=filemtime("$coundir/mainbase.csv")+300; else $ftime=0; // + 5 минут $tektime=time(); if ($ftime<$tektime) { // Если дата создания файла mainbase.csv менее 5 минут назад, статистику НЕ ПЕРЕСТРАИВАЕМ! изм. 11.2018 $i=0; if ($handle = opendir($coundir)) { while (($file = readdir($handle)) !== false) if (!is_dir($file)) { if (preg_match("/[0123456789]/",$file)==true) {$records[$i]=$file; $i++;}} closedir($handle); } else print 'В папке, которую вы указали нет данных счётчика!'; $itogo=count($records); $k=0; $text=null; do { $fline=file("$coundir/$records[$k]"); $fitogo=count($fline); if ($fitogo!=0 and preg_match("/[0123456789]/",$records[$k])) { $thendayx=str_replace(".csv","",$records[$k]); $dt=explode(".",$thendayx); $then=mktime(0,0,0,$dt[1],$dt[0],$dt[2]); $tekdate=date("d.m.Y",$then); if ($deldt>$then) unlink ("$coundir/$records[$k]"); // Удаляем статистику позднее $maxdays (XX дней, указано в админке) // Блок считает ХОСТЫ (уникальных посетителей) usort($fline,"prcmp"); $numip="0"; $hi=0; $ab="0"; $ac="0"; do { $dt=explode(";",$fline[$hi]); if ($ab!=$dt[0]) {$ab=$dt[0]; $numip++;} $hi++; } while ($hi<$fitogo); $text.="$then;$fitogo;$numip;;$records[$k];\r\n"; } unset($fitogo); unset($fline); $k++; } while ($k<$itogo); $fp=fopen("$coundir/mainbase.csv","w"); flock ($fp,LOCK_EX); fputs($fp,"$text"); fflush ($fp);//очищение файлового буфера flock ($fp,LOCK_UN); fclose($fp); @chmod("$coundir/mainbase.csv", 0644); } // if ($ftime<$tektime) // сортируем данные $records=file("$coundir/mainbase.csv"); $maxi=count($records); usort($records,"prcmp"); $recordsm=$records; $maxm=$maxi; if (isset($_GET['month'])) { // изм. 12.2018 - ПРОСМОТР СТАТИСТИКИ ЗА МЕСЯЦ(весь период) (сумма по всем страницам) $i=0; // Собираем всю статистику в файл if (is_file("$coundir/month.csv")) $ftime=filemtime("$coundir/month.csv")+259200; else $ftime=0; // + 3 ДНЯ (обновляется статистика раз в 3 дня!) $tektime=time(); if ($ftime<$tektime) { // Если дата создания файла менее Х дней назад, статистику НЕ ПЕРЕСТРАИВАЕМ! $fp=fopen("$coundir/month.csv","w"); flock ($fp,LOCK_EX); fflush ($fp);//очищение файлового буфера flock ($fp,LOCK_UN); fclose($fp); do { $dt=explode(";",$records[$i]); // Собираем все дни в один файл $dayfilename="$dt[4]"; // Собираем все просмотренные страницы и потом их сортируем $data=file_get_contents("$coundir/$dayfilename"); $fp=fopen("$coundir/month.csv","a+"); flock ($fp,LOCK_EX); fputs($fp,$data); fflush ($fp);//очищение файлового буфера flock ($fp,LOCK_UN); fclose($fp); $i++; } while ($i<$maxi); } // if ($ftime<$tektime) if (is_file("$coundir/month.csv")) { $month=file("$coundir/month.csv"); $maxy=count($month); $hitm=$maxy;} // Считываем дату создания страницы $ftime=filemtime("$coundir/month.csv"); $tekdate=date("d.m.Y г, H:i:s",$ftime); $i=0; do { $dt=explode(";",$month[$i]); $newlines[$i]="$dt[4]"; // итого по каждой странице $lines_os[$i]="$dt[3]"; // Собираем все операционные системы $lines_br[$i]="$dt[2]"; // Собираем все браузеры $i++; } while ($i<$maxy); ///////////// блок новый 24-12-2018 г. $newlines2=array_count_values($newlines); // считаем кол-во посещений каждой страницы $lines_os2=array_count_values($lines_os); // считаем кол-во операционных систем $lines_br2=array_count_values($lines_br); // считаем кол-во браузеров arsort($newlines2); reset($newlines2); // сортируем arsort($lines_os2); reset($lines_os2); arsort($lines_br2); reset($lines_br2); //print"

"; print_r ($lines_br2); exit;

// Работаем с ОС
$msg_os="

Статистика по операционным системам (по хитам)

"; $i=0; do { $massiv=each($lines_os2); $num=$i+1; $m2=round($massiv[1]*$scale1*2); $delta=100*$massiv[1]/$maxy; $addstyle="bgcolor=#CAFFCA"; $procent=round($delta,0); $procent="($procent %)"; if (strlen($massiv[0])<1) $massiv[0]="ОС НЕ РАСПОЗНАНА"; $msg_os.=""; $i++; } while ($i70) { $hrtext=substr($hrtext,0,70); $hrtext.="...";} if ($massiv[1]>1 and $massiv[0]!="СТРАНИЦА НЕ РАСПОЗНАНА") $msg_br.="$hrtext"; else $msg_br.="$hrtext"; $msg_br.=""; if ($massiv[1]=="3") $i=count($lines_br2); $i++; } while ($i10) { $mc=round($msg_br_c*$scale1); $delta=100*$msg_br_c/$maxy; $procent=round($delta,0); $procent="($procent %)"; $msg_br.="";} if ($msg_br_f>10) { $mc=round($msg_br_f*$scale1); $delta=100*$msg_br_f/$maxy; $procent=round($delta,0); $procent="($procent %)"; $msg_br.="";} if ($msg_br_s>10) { $mc=round($msg_br_s*$scale1); $delta=100*$msg_br_s/$maxy; $procent=round($delta,0); $procent="($procent %)"; $msg_br.="";} if ($msg_br_o>10) { $mc=round($msg_br_o*$scale1); $delta=100*$msg_br_o/$maxy; $procent=round($delta,0); $procent="($procent %)"; $msg_br.="";} $msg_br.='
№ п/пОСПросмотров
$num"; $hrtext=$massiv[0]; if (strlen($massiv[0])>70) { $hrtext=substr($hrtext,0,70); $hrtext.="...";} if ($massiv[1]>1 and $massiv[0]!="СТРАНИЦА НЕ РАСПОЗНАНА") $msg_os.="$hrtext"; else $msg_os.="$hrtext"; $msg_os.=" $massiv[1] $procent
$massiv[1] $procent
-CHROME $msg_br_c $procent
-FIREFOX $msg_br_f $procent
-SAFARI $msg_br_s $procent
-OPERA $msg_br_o $procent

'; //print_r($lines_br2); ///////////// блок новый // Работаем со страницами $msg.="

Статистика по просматриваем страницам (по хитам)

Дата и время генерации статистики: $tekdate
"; $i=0; $deltaitog=0; $pages=0; do { $massiv=each($newlines2); $m2=round($massiv[1]*$scale1); $delta=100*$massiv[1]/$maxy; if ($delta>2) $addstyle="bgcolor=#E6FFE6"; else $addstyle=""; if ($delta>5) $addstyle="bgcolor=#CAFFCA"; if ($delta>10) $addstyle="bgcolor=#64FF64"; if ($delta>"0.1") { // Если просмотров больше 0.1% $deltaitog=$deltaitog+$delta; $pages=$pages+$massiv[1]; $procent=round($delta,1); $procent="($procent %)"; if (strlen($massiv[0])<1) $massiv[0]="СТРАНИЦА НЕ РАСПОЗНАНА"; $msg.="$i"; $hrtext=$massiv[0]; if (strlen($massiv[0])>70) { $hrtext=substr($hrtext,0,70); $hrtext.="...";} if ($massiv[1]>1 and $massiv[0]!="СТРАНИЦА НЕ РАСПОЗНАНА") $msg.="$hrtext"; else $msg.="$hrtext"; $msg.=" $massiv[1] $procent"; } // if ($delta>0,1) { $i++; } while ($i<=count($newlines2)); $deltaitog=round($deltaitog,1); $msg.="-ИТОГО с посещаемостью >= 0.1%:$pages ($deltaitog %)"; // +++ Выводим статистику по ОПЕРАЦИОННЫМ СИСТЕМАМ и браузерам print"$shapka
Главная сайта :: Страница статистики :: Статистика за период

$msg
№ п/пСтраницаПросмотров *
$msg_os $msg_br
"; //echo'
'; print_r($newlines2);

exit; } // if isset($month)




 
 





if (isset($_GET['day'])) { $day=$_GET['day']; // ПРОСМОТР СТАТИСТИКИ ЗА СУТКИ (по каждой странице)

if (strlen($day)<12 and ctype_digit($day)) {
$file=date("d.m.Y",$day);
if (is_file("$coundir/$file.csv")) { $records=file("$coundir/$file.csv"); $maxi=count($records); $hitov=$maxi;

if (isset($_POST['findme'])) {
$findme=replacer($_POST['findme']);
$stroka=strlen($findme); if($stroka>2 and $stroka<30) {
$temprecord=$records; $records=null; $i=0; $hitov=count($temprecord);
foreach($temprecord as $v) {if (strpos($v,$findme)) {$i++; $records[$i]=$v;}}
$maxi=$i; $hitov="$hitov / $maxi";}} else $findme="";

// Блок считает ХОСТЫ (уникальных посетителей)
usort($records,"prcmp");
$numip=0; $numsys=0; $i=0; $ab="0"; $ac="0"; $ad="0"; $newlines=null;

do { $dt=explode(";",$records[$i]); 
// Собираем все страницы
$newlines[$i]="$dt[4]"; // Собираем все просмотренные страницы и потом их сортируем
$lines_os[$i]="$dt[3]"; // Собираем все операционные системы
$lines_br[$i]="$dt[2]"; // Собираем все браузеры
$lines_tm[$i]=date("H",$dt[1]); // Собираем время просмотра
$i++; } while ($i<$maxi);
usort($newlines,"prcmp");  $i=0;

do { $dt=explode(";",$records[$i]);
if ($ab!=$dt[0]) {$ab=$dt[0]; $numip++;}
if ($ad!=$newlines[$i]) {$ad=$newlines[$i]; $numsys++;}
$i++; } while ($i<$maxi);

$i=1; $msg=""; // Собираем информацию о посещаемых страницах

$newlines2=array_count_values($newlines); // считаем кол-во посещений каждой страницы
$lines_os2=array_count_values($lines_os); // считаем кол-во операционных систем
$lines_br2=array_count_values($lines_br); // считаем кол-во браузеров
$lines_tm2=array_count_values($lines_tm); // сворачиваем по времени

arsort($newlines2); reset($newlines2); // сортируем
arsort($lines_os2); reset($lines_os2);
arsort($lines_br2); reset($lines_br2);
arsort($lines_tm2); reset($lines_tm2);
//print"
"; print_r ($lines_tm2); exit; // проверка что в переменной



// Статистика по часам
$msg_tm="

Статистика по времени просмотра страниц (время посещения)

"; $msg_tm.=" "; for ($t=0; $t<50; $t++) { // начало FOR if (isset($lines_tm2[$t])) {$tm2=$lines_tm2[$t]; $hey=round($tm2*$scale1*0.8); $msg_tm.="";} else {if ($t<24) $msg_tm.="";} if ($t==25) $msg_tm.=""; if ($t>25) {$ta=$t-25; $msg_tm.="";} } $msg_tm.="
$tm2
$ta
ВРЕМЯ суток, распределение посетителей по часам
"; // Работаем со страницами $msg.="

Статистика по просматриваем страницам (по хитам)

"; do { $massiv=each($newlines2); $m2=round($massiv[1]*$scale1*5); $delta=100*$massiv[1]/$maxi; if ($delta>2) $addstyle="bgcolor=#E6FFE6"; else $addstyle=""; if ($delta>5) $addstyle="bgcolor=#CAFFCA"; if ($delta>10) $addstyle="bgcolor=#64FF64"; $procent=round($delta,1); $procent="($procent %)"; if (strlen($massiv[0])<1) $massiv[0]="СТРАНИЦА НЕ РАСПОЗНАНА"; $msg.="$i"; $hrtext=$massiv[0]; if (strlen($massiv[0])>70) { $hrtext=substr($hrtext,0,70); $hrtext.="...";} if ($massiv[1]>1 and $massiv[0]!="СТРАНИЦА НЕ РАСПОЗНАНА") $msg.="$hrtext"; else $msg.="$hrtext"; $msg.=" $massiv[1] $procent"; $i++; } while ($i<=count($newlines2)); // Работаем с ОС $msg_os="

Статистика по операционным системам (по хитам)

"; $i=0; do { $massiv=each($lines_os2); $num=$i+1; $m2=round($massiv[1]*$scale1*2); $delta=100*$massiv[1]/$maxi; $addstyle="bgcolor=#CAFFCA"; $procent=round($delta,0); $procent="($procent %)"; if (strlen($massiv[0])<1) $massiv[0]="ОС НЕ РАСПОЗНАНА"; $msg_os.=""; $i++; } while ($i70) { $hrtext=substr($hrtext,0,70); $hrtext.="...";} if ($massiv[1]>1 and $massiv[0]!="СТРАНИЦА НЕ РАСПОЗНАНА") $msg_br.="$hrtext"; else $msg_br.="$hrtext"; $msg_br.=""; if ($massiv[1]=="3") $i=count($lines_br2); $i++; } while ($i10) { $mc=round($msg_br_c*$scale1); $delta=100*$msg_br_c/$maxi; $procent=round($delta,0); $procent="($procent %)"; $msg_br.="";} if ($msg_br_f>10) { $mc=round($msg_br_f*$scale1); $delta=100*$msg_br_f/$maxi; $procent=round($delta,0); $procent="($procent %)"; $msg_br.="";} if ($msg_br_s>10) { $mc=round($msg_br_s*$scale1); $delta=100*$msg_br_s/$maxi; $procent=round($delta,0); $procent="($procent %)"; $msg_br.="";} if ($msg_br_o>10) { $mc=round($msg_br_o*$scale1); $delta=100*$msg_br_o/$maxi; $procent=round($delta,0); $procent="($procent %)"; $msg_br.="";} $msg_br.='
№ п/пОСПросмотров
$num"; $hrtext=$massiv[0]; if (strlen($massiv[0])>70) { $hrtext=substr($hrtext,0,70); $hrtext.="...";} if ($massiv[1]>1 and $massiv[0]!="СТРАНИЦА НЕ РАСПОЗНАНА") $msg_os.="$hrtext"; else $msg_os.="$hrtext"; $msg_os.=" $massiv[1] $procent
$massiv[1] $procent
-CHROME $msg_br_c $procent
-FIREFOX $msg_br_f $procent
-SAFARI $msg_br_s $procent
-OPERA $msg_br_o $procent

'; //print_r($lines_br2); $dayn=date("w",$day); // Считаваем день недели по порядку $lastday1=date("d.m.Y",$day-86400); $lastday2=$day-86400; $nextday1=date("d.m.Y",$day+86400);$nextday2=$day+86400; print"$shapka
Главная сайта :: Страница статистики :: Статистика за период

"; // Если нет данных за выбранную дату, то выдаём сообщение с ошибкой! if (!is_file("$coundir/$lastday1.csv")) print"«««
Предыдущая дата:
$lastday1 г.
"; else print"«
Предыдущая дата:
$lastday1 г.
"; print"
Дата: $file г.
"; if ($dayn!=0 and $dayn!=6) print"$weeks[$dayn]"; else print "$weeks[$dayn]"; print"
Итого хиты / хосты: $hitov / $numip
Уникальных страниц: $numsys
"; // Если нет данных за выбранную дату, то выдаём сообщение с ошибкой! if (!is_file("$coundir/$nextday1.csv")) print"Следующая дата:
$nextday1 г.
»
"; else print"Следующая дата:
$nextday1 г.
»
"; print"

"; // Выводим все даты, когда были посещения echo'\r\n"; } // конец FOR echo'
Все даты: '; for ($m=0; $m<$maxm; $m++) { // начало FOR $dtt=explode(";",$recordsm[$m]); if (!isset($m0)) {$m0=date("m",$dtt[0])-1;} if ($m==$maxm-1) {$m1=date("m",$dtt[0])-1;} $xday=date("d",$dtt[0]); $dayn=date("w",$dtt[0]); // Считаваем день недели по порядку if ($dayn=="0" or $dayn=="6") $weekstyle="bgcolor=#FF7979"; else $weekstyle=""; print""; if ($day==$dtt[0]) print"$xday"; else print"$xday"; print"
'; print"

Фильтр по адресу страницы:
"; print" $msg
№ п/пСтраницаПросмотров *
"; // Выводим статистику по ОПЕРАЦИОННЫМ СИСТЕМАМ и браузерам print "$msg_tm $msg_os $msg_br
"; } else { header("HTTP/1.1 404 Moved Permanently"); header("Location: info.php"); exit(); } // if is_file } echo'
* При использовании поиска количество хостов, уникальных страниц, а также процент считается от
того количества страниц, которое попало под фильтр, а не от общего количества страниц!
'; } else { // if isset($day). ИНАЧЕ показываем общую страницу статистики print"$shapka
Информация по посещаемости *\r\n "; $graph1=""; $graph2=""; // Формируем данные для графиков $g1shapka="
"; if (sizeof($records)>=1) { // ЕСЛИ есть данные - то выводим графики if ($gtype=="1") { $itogohit=0; $itogohost=0; // ГОРИЗОНТАЛЬНЫЙ график $xdaym="
Дата 
\r\n"; $g2shapka="
К
О
Л
-
В
О

Х
И
Т
О
В
\r\n"; for ($i=0; $i<$maxi; $i++) { // начало FOR $dtt=explode(";",$records[$i]); $dttn1=round($dtt[1]*$scale1); // шкала 1-го графика $dttn2=round($dtt[2]*$scale2); // шкала 2-го графика $itogohit=$itogohit+$dtt[1]; $itogohost=$itogohost+$dtt[2]; $graph1.="\r\n"; $graph2.="\r\n"; if (!isset($m0)) {$m0=date("m",$dtt[0])-1;} if ($i==$maxi-1) {$m1=date("m",$dtt[0])-1;} $xday=date("d",$dtt[0]); $dayn=date("w",$dtt[0]); // Считаваем день недели по порядку if ($dayn=="0" or $dayn=="6") $weekstyle="bgcolor=#FF7979"; else $weekstyle=""; $xdaym.="\r\n"; } // конец FOR $xdaym.=""; $xdaym.=""; $graph1.="\r\n"; $srednee=ceil($itogohit/$maxi); $srednee1=ceil($srednee*$scale1); $graph1.="\r\n"; $graph2.="\r\n"; $srednee=ceil($itogohost/$maxi); $srednee2=ceil($srednee*$scale2); $graph2.="\r\n"; $mm1=$months[$m0]; $mm2=$months[$m1]; if ($mm1==$mm2) {$mm1="";} else {$mm1.=" - ";} $msdat="
К
О
Л
-
В
О

Х
О
С
Т
О
В
$dtt[1]
$dtt[2]
$xday ИТОГОСреднее 
$itogohit
$srednee
 
$itogohost
$srednee
Период:   $mm1 $mm2 ($days дн.)
\r\n"; print"$g1shapka $graph1 $xdaym "; // печатаем 1-ый ГРАФИК print"$g2shapka $graph2 $xdaym $msdat"; // печатаем 2-ой ГРАФИК } else { // ВЕРТИКАЛЬНЫЙ график $g1shapka="\r\n"; $g2shapka="
ДатаКОЛ-ВО ХИТОВ
 
\r\n"; $xdaym=""; $graph1=""; $graph2=""; // Формируем данные для графиков for ($i=0; $i<$maxi; $i++) { // начало FOR $dtt=explode(";",$records[$i]); //$dtt[0]=date("d.m.y",$dtt[0]); if (!isset($m0)) {$m0=date("m",$dtt[0])-1;} if ($i==$maxi-1) {$m1=date("m",$dtt[0])-1;} $xday=date("d",$dtt[0]); $dttn1=round($dtt[1]*$scale1); // шкала 1-го графика $dttn2=round($dtt[2]*$scale2); // шкала 2-го графика $graph1.=""; $graph2.=""; } // конец FOR $mm1=$months[$m0]; $mm2=$months[$m1]; if ($mm1==$mm2) {$mm1="";} else {$mm1.=" - ";} $msdat="
ДатаКОЛ-ВО ХОСТОВ
 
$xday
  $dtt[1]
$xday
  $dtt[2]
Период: $mm1 $mm2
\r\n"; print"
$g1shapka $graph1 $xdaym
"; // печатаем 1-ый ГРАФИК print"
$g2shapka $graph2 $xdaym $msdat
"; // печатаем 2-ой ГРАФИК } // else ($gtype) print"
P.S. Хиты - общее количество просмотров страниц где установлен счётчик;
       Хосты - количество посетителей с уникальным IP-адресом.
Статистика обновляется каждые 5 минут. Следующее обновление в ". date("H:i:s",$ftime)."
"; } else {print"


Данные для графика отсутствуют.
Посещений за последний период не было.

";} } // else от if isset($day) ?>