Пишем гостевую книгу(графические счетчики)

Ну а теперь разберем написание графического счетчика. Отличатся от вышеперечисленных скриптов он будет тем, что он будет выдавать картинку, а не страницу wml. Ну и для того, чтобы указать php машине, что скрипт выдает картинку, а не что либо другое, мы должны будем прописать соответствующею строку. Например в случае вывода скриптом gif картинки, строка будет такой:

header("Content-type: image/gif");

Ну и для наглядности приведу скрипт счетчика:

<? header("Content-type: image/gif"); $agent="$REMOTE_ADDR"; $ugent=getenv('HTTP_USER_AGENT'); $agent=trim($agent); $ugent=trim($ugent); $agent="$agent|$ugent"; $time=time(); $oftime=$time-300; $den =date("H",$time); //Сперва считаем он-лайн посетителей: $aron=@file("online.txt"); $ton=0; foreach($aron as $key => $val) { $artext=@explode("#",$val); if($artext[0]>$oftime & $agent!=$artext[1] & $artext[1]!=""){ $newar[$ton]=$val; $ton=$ton+1;} if($agent==$artext[1] & $artext[0]>$oftime){$metod="xit";}} $newar[$ton]="$time#$agent# \r\n"; $fp=@fopen("online.txt","w"); fclose($fp); chmod ("online.txt", 0777); foreach($newar as $key => $val) { $fp=@fopen("online.txt","a"); fputs($fp,"$val"); fclose($fp);} $online=$ton; //Ну а теперь считаем всего и за сегодня: $count=@file("count.txt"); $count =@explode("#",$count); if($count[0]!=$den){$count[1]=0; $count[0]=$den;} //обнуляем счетчик в случае необходимости if($metod!="xit"){$count[1]=$count[1]+1; $count[2]=$count[2]+1;} $zapis="$count[0]#$count[1]#$count[2]#"; $fp=@fopen("count.txt","a"); fputs($fp,"$zap"); fclose($fp); $segodnja=$count[1]; $vsego=$count[2]; //Теперь создаем картинку: $image = imagecreatetruecolor(110,30); imagefill($image, 0, 0, 0xFF0000); ImageString ($image , 1, 50, 9, $online,1); ImageString ($image , 1, 50, 17, $segodnja,1); ImageString ($image , 1, 50, 25, $vsego,1); imagegif($image); ?>

Ну а теперь разберемся в нем.

$image = imagecreatetruecolor(110,30); - Этот оператор создает пустое полноцветное изображение. Возвращает дескриптор созданного изображения. Созданное изображение имеет черный фон. Синтаксис: $image = imagecreatetruecolor(ширина, высота);

imagefill($image, 0, 0, 0xFF0000); - Функция производит заливку области внутри контура, на изображении image. Контур определяется пикселя любого цвета отличного от цвета пикселей, находящихся внутри контура. Цвет пикселей внутри контура берется из точки с координатами x, y. color - идентификатор цвета. Синтаксис: imagefill(дескриптор изображений, x, y, дескриптор цвета);

ImageString ($image , 1, 50, 9, $online,1); - Горизонтальное рисование строки Синтаксис: ImageString (дескриптор изображения , шрифт, x, y, строка, дескриптор цвета); Тут x, y – координаты левого верхнего угла начала строки.

imagegif($image); - выводит gif изображение. Синтаксис: imagegif(дескриптор изображения);

Кальян
Источник: wapteam.ru

Советую также почитать: