<?php
//-------------------------------------------------
/* логирование количества визитов за каждый день */
//-------------------------------------------------
/* константы */
$count_vis = 1;
$count_buf = 0;
/* текущий день */
$date = date("d");
/* открытие файла статистики */
$log_file = date("m"."."."Y").".log";
/* новый месяц - новый файл */
if (!file_exists($log_file))
{
$fp = fopen($log_file,'w');
fclose($fp);
}
$log_buf = file($log_file);
$num = count($log_buf) - 1;
/* находим последнюю запись */
$line_rd = explode(" ",$log_buf[$num]);
/* обработка последний записи */
if ($line_rd[0] == $date)
{
$new_num = $num;
$count_vis = $line_rd[1];
$count_vis++;
$log_buf[$num] = $date." ".$count_vis." \n";
}
/* если новоая дата, добавим запись */
else
{
$new_num = $num + 1;
$log_buf[$num + 1] = $date." ".$count_vis." \n";
}
/* сохранение файла ститистики */
$fp = fopen($log_file,"w");
while ($new_num >= $count_buf)
{
fputs($fp,$log_buf[$count_buf]);
$count_buf++;
}
fclose($fp);
?>
<?php
//-------------------------------------------------
/* генерация отчёта о визитах в виде графика */
//-------------------------------------------------
/* константы */
$i = 10;
$j = 50;
$k = 10;
/* текущий день */
$cur_d = date("d");
/* название рессурса */
$site_name = "'KIA MOTORS'";
/* не кешировать */
header("Cache-Control: no-cache, must-revalidate");
/* создание рисунка */
header("Content-type: image/PNG");
$image = ImageCreate(340,250);
/* цвета */
$back_col = ImageColorAllocate($image,180,180,255);
$mn_col = ImageColorAllocate($image,0,0,0);
$poli_col = ImageColorAllocate($image,150,150,200);
$coord_col = ImageColorAllocate($image,200,200,200);
$graf_col1 = ImageColorAllocate($image,255,0,0);
$graf_col2 = ImageColorAllocate($image,0,255,0);
$bord_col = ImageColorAllocate($image,0,0,0);
$text_col = ImageColorAllocate($image,128,0,0);
/* прорисовка рамки */
ImageRectangle($image,1,1,339,249,$bord_col);
/* прорисовка сетки */
ImageFilledRectangle($image,11,41,329,239,$poli_col);
while ($i <= 320)
{
ImageLine($image,$i,40,$i,240,$coord_col);
$i = $i + 10;
}
while ($j <= 230)
{
ImageLine($image,10,$j,330,$j,$coord_col);
$j = $j + 10;
}
ImageRectangle($image,10,40,330,240,$mn_col);
/* надписи */
ImageString($image,1,15,241,"01 03 05 07 09 11 13 15 17 19 21 23 25 27 29 31",$text_col);
ImageString($image,1,1,187,"05",$text_col);
ImageString($image,1,1,137,"10",$text_col);
ImageString($image,1,1,87,"15",$text_col);
ImageString($image,1,1,37,"20",$text_col);
ImageString($image,4,45,5,"Statistics for site ".$site_name,$text_col);
ImageString($image,4,60,22,"Year : ".date("Y")." Month : ".date("M"),$text_col);
/* открытие файла статистики */
$log_file = date("m"."."."Y").".log";
$log_buf = file($log_file);
/* восстановим даты, когда небыло визитов */
$num = 0;
$d = 1;
while ($d <= $cur_d)
{
$stat_line = explode(" ",$log_buf[$num]);
if ($stat_line[0] != $d)
{
$stat_line[0] = $d;
$stat_line[1] = 0;
}
else
{
$num ++;
}
/* построение графика */
$counter = 200 - $stat_line[1] * 10;
if ($counter > 1)
{
$graf_col = $graf_col2;
}
else
{
$graf_col = $graf_col1;
$counter = 1;
}
ImageFilledRectangle($image,8 + $k,41 + $counter,12 + $k,239,$graf_col);
$d ++;
$k = $k + 10;
}
/* вывод рисунка */
ImagePNG($image);
ImageDestroy($image);
?>