A03:曜日によって画像を変える

苦労して作ったページでも、内容に変化がなければ、毎日見てくれる事は少ないと思います。
今回は、曜日によって違う画像を表示するようなCGIを紹介します。
見る日によって少しでも変化があれば、見てみようという気になるかも知れません。

ファイルを開く

解説
#!/usr/local/bin/perl
プロバイダがPerlを置いている場所を記述します。
ここでは/usr/local/bin/perlにあるとしています。
$image[0]="week0.png";
$image[1]="week1.png";
$image[2]="week2.png";
$image[3]="week3.png";
$image[4]="week4.png";
$image[5]="week5.png";
$image[6]="week6.png";
表示する画像のファイル名を配列に代入しています。
0〜6の数字とファイル名を対応させる為に行っています。
$number=(localtime(time))[6];
0〜6の数字で曜日が取得でき、$numberに代入されます。
0が日曜日、1が月曜日という順になります。
☆今回のポイント☆
曜日を取得して利用しよう!
printf("Content-type:image/png\n\n");
CGIとして出力するデータがPNG形式の画像である事を出力しています。
$size = -s $image[$number];
open(IN, $image[$number]);
binmode(IN);
read(IN, $buf, $size);
close(IN);
数字に対応した画像のファイル名を$image[$number]で指定して、データを読み込んでいます。
$sizeには、ファイル名を元にデータのサイズを取得して代入しています。
ファイルから読み込むデータがバイナリ形式なのでbinmode(IN)を書いています。
binmode(STDOUT);
print $buf;
画像のデータ本体を出力しています。
CGIとして出力するデータがバイナリ形式なのでbinmode(STDOUT)を書いています。
exit;
プログラムを終了させます。