見出し画像

Perlでアクセスカウンターを作る(6)

 今回は、いよいよ画像の連結をします。これをすると、CGIを1回呼び出せばよいだけになるので、HTML部分をまず変更します。それにともない、色々要らなくなる処理もありますので、それも修正しておきます。

 あとは、画像表示部分もImageMagickを用いたものに変更するので、処理をごっそり入れ替えます。とりあえず、

#!/usr/bin/perl

use strict;
use Image::Magick;

#ファイル読み込み

open(CO,"+< ./dat/count.dat") or die "file open error";
eval "flock(CO,2)";
my $data = <CO>;
open(AD,"+< ./dat/address.dat") or die "file open error";
eval "flock(AD,2)";
my $addd = <AD>;
my $addu = $ENV{'REMOTE_ADDR'};

#カウント数アップ

if ($addu ne $addd) {
$data++;
truncate(CO,0);
seek(CO,0,0);
print CO "$data";
truncate(AD,0);
seek(AD,0,0);
print AD "$addu";
}
close(AD);
close(CO);

#画像連結

my $l = length($data);
my $image = Image::Magick -> new;
my $i = 0;
my $n = '';
for ($i = 0; $i < $l; $i++) {
$n = substr($data,$i,1);
$image -> Read("./img/$n.png");
}
$image = $image -> Append(stack => 'false');

print "Content-type:image/png\n\n";

binmode (STDOUT);
$image -> Write('png:-');

という感じになりました。普通に表示されているので、これでいいのでしょうか。

 上のソースのコピーと、画像ファイル、保存用ファイル×2、その他ダミーファイルがあれば動かすことはできると思いますが、実用性はあまりないと思われます。

 ImageMagickが使えない場合は、第3.5回のソースを使って動かす方法もありますが、そちらはもっとお勧めしません。昔流行ったPerlでのCGI作成の気分を味わえればそれで良いという方には、ある意味お勧めではありますが。

 アクセスカウンターの製作はこれで終わりですが、次は何を作りましょうか。クラミニライブラリーはレトロ路線なので、そういう系統をひたすら作っていく予定ですが、いまさら、Perlで掲示板やチャットシステムを作っても仕方ないですしねえ。

 さて、Windows98ぐらいの時代にWebで流行っていたものと言えば何でしょうかね。ホー〇ページバトラー?

この記事が気に入ったらサポートをしてみませんか?