// WR-Counter v 1.2 // 05.01.08 г. // Miha-ingener@yandex.ru #error_reporting (E_ALL); include "config.php"; function prcmp ($a, $b) {if ($a==$b) return 0; if ($a<$b) return -1; return 1;} $months=array("Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь"); $deldt=mktime()-$days*86400; // формируем дату удаления объявления $i=0; if ($handle = opendir($datadir)) { while (($file = readdir($handle)) !== false) if (!is_dir($file)) {$lines[$i]=$file; $i++;} closedir($handle); } else {print 'В папке, которую вы указали нет данных счётчика!';} $itogo=count($lines); $k=0; $text=null; do { $fline=file("$datadir/$lines[$k]"); $fitogo=count($fline); if ($fitogo!=0 and $lines[$k]!="all.dat" and $lines[$k]!="last.dat" and $lines[$k]!="mainbase.dat" and $lines[$k]!=".htaccess") { $thendayx=str_replace(".dat","",$lines[$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 ("$datadir/$lines[$k]");} // Блок считает ХОСТЫ (уникальных посетителей) usort($fline,"prcmp"); $numip="0"; $numsys="0"; $hi=0; $ab="0"; $ac="0"; do { $dt=explode("|",$fline[$hi]); if ($ab!=$dt[0]) {$ab=$dt[0]; $numip++;} if (isset($dt[2])) {if ($ac!=$dt[2]) {$ac=$dt[2]; $numsys++;}} $hi++; } while ($hi<$fitogo); $text.="$then|$fitogo|$numip|$numsys|\r\n"; } unset($fitogo); unset($fline); $k++; } while ($k<$itogo); $fp=fopen("$datadir/mainbase.dat","w"); flock ($fp,LOCK_EX); fputs($fp,"$text"); fflush ($fp);//очищение файлового буфера flock ($fp,LOCK_UN); fclose($fp); @chmod("$datadir/mainbase.dat", 0644); // сортируем данные $lines=file("$datadir/mainbase.dat"); $maxi=count($lines); usort($lines,"prcmp"); print"
"; if (sizeof($lines)>=1) { // ЕСЛИ есть данные - то выводим графики if ($gtype=="1") { // ВЕРТИКАЛЬНЫЙ график $xdaym=" | |||||||||||||||||||||||||||||||
Дата | \r\n "; $graph1=""; $graph2=""; // Формируем данные для графиков $g1shapka=" |
К О Л - В О Х И Т О В | \r\n"; $g2shapka=" |
К О Л - В О Х О С Т О В | \r\n"; for ($i=0; $i<$maxi; $i++) { // начало FOR $dtt=explode("|",$lines[$i]); $dttn1=round($dtt[1]*$scale1); // шкала 1-го графика $dttn2=round($dtt[2]*$scale2); // шкала 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]);
$xdaym.="$xday | \r\n"; } // конец FOR $mm1=$months[$m0]; $mm2=$months[$m1]; if ($mm1==$mm2) {$mm1="";} else {$mm1.=" - ";} $msdat="
Дата | КОЛ-ВО ХИТОВ | |||||||||||||||
\r\n"; $g2shapka=" |
Дата | КОЛ-ВО ХОСТОВ | ||
\r\n"; $xdaym=""; $graph1=""; $graph2=""; // Формируем данные для графиков for ($i=0; $i<$maxi; $i++) { // начало FOR $dtt=explode("|",$lines[$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.=" | |||
$xday |
| ||
$xday |
| ||
$g1shapka $graph1 $xdaym |