Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Perl: Общие вопросы > Графический счетчик на Perl


Автор: Alex 17.12.2004, 23:46
Графический счетчик создается с помощью библиотеки GD.

Код

#!/usr/bin/perl
use GD;

$dat_file="counter.dat"; # Файл счетчика
$log_file="counter.log"; # Файл списка IP

# Открывем файл счетчика и считываем текущий счет
# в переменную $count
open(DAT,"$dat_file");
$count=<DAT>;
close(DAT);
chop($count) if $count =~ / $/; # Удаляем символ конца строки

$count++; # Увеличиваем счетчик

# Записываем данные обратно в файл
open(DAT,">$dat_file");
print DAT ("$count");
close(DAT);

# Создаем новое изображение из файла
$im = newFromPng GD::Image('counter.png');
# Назначаем черный цвет
$black = $im->colorAllocate(0,0,0);
# Выводим счет на изображение
$im->string(gdTinyFont,5,20,"$count",$black);

# Выводим изображение в стандартный поток вывода
binmode STDOUT;
print "Content-Type: image/png ";
print $im->png;

# Записываем IP посетителя
open(LOGFILE,">>$log_file");

print LOGFILE ("$ENV{'REMOTE_ADDR'} ");

close(LOGFILE); 


Для работы этого скрипта необходимо создать два файла, для ведения счета и для списка IP. В файле счета необходимо установить начальное значение счетчика, сделать это можно в любом текстовом редакторе.
Для вывода счетчика в html используйте:
<IMG SRC="cgi-bin/counter.cgi" WIDTH="88" HEIGHT="31" BORDER=0>

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)