Просмотр файла statistics.php

Размер файла: 3.87Kb
<?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);
?>