• ベストアンサー

日替わり画像の表示方法について

いつもお世話になっています。 只今日替わりで賞品をプレゼントするキャンペーンページを製作しているのですがあらかじめ001.gif~099.gifなどをアップしておくと自動で1日ごと(毎日0時)に画像が変わる(1日目001.gif→2日目002.gif…)といったようなCGIなどはどのように製作したらいいでしょうか? 宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • qtea
  • ベストアンサー率77% (38/49)
回答No.1

それなりに手抜きで、こんな感じでどうでしょうか? -- #!/usr/bin/perl use Time::Local; #基準日 $base_date = "2006-11-04"; #基準日から今日まで何日目か算出 ($y,$m,$d)=split(/\D/, $base_date); $basetime = timelocal(0,0,0,$d,$m-1,$y-1900); ($d, $m, $y) = (localtime(time()))[3..5]; $nowtime = timelocal(0,0,0,$d,$m,$y); $nisu = ($nowtime - $basetime) / (60 * 60 * 24) + 1; #画像ファイル名をつくる。 $img = sprintf("%03d.gif",$nisu); #ファイル有無をみて、なければ、000.gifを選択 unless(-f $img){ $img = "000.gif"; } #画像ファイルを読みこむ open(IN,$img); binmode(IN); read(IN,$data,-s IN); close(IN); #画像データを出力 print ("Content-type: image/gif\n\n"); binmode(STDOUT); print $data; -- 使いかたは、カウンターのように使用します。 HTML内で、 <img src="cgiのurl"> という感じで。 なお、 $base_date = $ENV{QUERY_STRING}; と設定する場合は、 <img src="cgiのurl?2006-11-01"> のような感じで使います。 あと画像はCGIと同じところに置いてください。