• ベストアンサー

毎日違う画像を表示したい

あるディレクトリ内に収めた多数の画像の中から一枚だけ選んで毎日ランダムにホームページ上に表示させるスクリプトを考えていますがうまくいきません。 なるだけシンプルに実現する方法がありましたら初心者にもわかるようソースの記述例をお教えください、どうぞよろしくお願い致します。

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

  • ベストアンサー
  • ryuta_mo
  • ベストアンサー率30% (109/354)
回答No.2

>携帯サイトにも対応させたいので・・ Javascriptは使えませんね。 http://perl-labo.i-ji.net/location/rndimg/ これをちょっといじって #!/usr/local/bin/perl @jpg = ( "1.JPG", "2.JPG", "3.JPG", "4.JPG", "5.JPG", "6.JPG", "7.JPG", "8.JPG", "9.JPG" ); ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = localtime(time); $n = @jpg; $n = $yday%$n; print "Location: http://perl-labo.i-ji.net/location/rndimg/$jpg[$n]\n\n"; これで動くと思います 最後の行のURLと画像のリストを書き換えてください。

tibox00
質問者

補足

ご回答ありがとうございます! えーっと、画像リストというのは"1.JPG""2.JPG","3.JPG"・・ の番号を画像名に書き換えるということでしょうか?画像をフォルダに格納してそれをリストで指定する形になるのでしょうか? その場合ソースのどの部分にフォルダ名を追加記述すればよいでしょうか? よろしくお願いします。

すると、全ての回答が全文表示されます。

その他の回答 (2)

  • ryuta_mo
  • ベストアンサー率30% (109/354)
回答No.3

>その場合ソースのどの部分にフォルダ名を追加記述すればよいでしょうか? 最後の行です。 print "Location: http://perl-labo.i-ji.net/location/rndimg/$jpg[$n]\n\n"; これのhtp://perl・・・・rndimg/を書き換えてください。

tibox00
質問者

お礼

ご丁寧なご回答ありがとうございます。 ローカルでは問題なく動いたのですが、いざサーバにアップして試しましたら画像ファイルをうまくみつけないようでなぜか画像が表示されません(; ;) CGIは機能しているようなのですが(携帯のHP作成のブラウザでアクセスするごとにリンク画像番号が変わっているので。) 属性や画像パス等基本的な項目はもちろんチェックしました。試しに文字を表示させるような簡単なCGIをサーバにアップして試しましたが問題なく表示されました。 あと考えられる問題点はどのへんにあるでしょうか? デバックとかでエラー原因を突き止められないでしょうか? (すぐ変化がわかるように $n = $sec%$n; と仕様を変えています。) せっかくここまでお教えいただいたのでなんとか サーバ上でも正常に機能させたいのでよろしくお願い 致します。m(_)m

tibox00
質問者

補足

ご教授ありがとうございます!無事動きました! あともうひとつだけ教えてください。 例えば画像を後々どんどん増やしていきたい場合、001.JPG","002.JPG", "003.JPG",・・とファイル名を追加していくのではなく、この部分を正規表現で対応させておくことは可能でしょうか? よろしくお願い致します。

すると、全ての回答が全文表示されます。
  • ryuta_mo
  • ベストアンサー率30% (109/354)
回答No.1

毎日と言うのは1日の間はずっと同じでないとだめですか? それともアクセスするたび違ってもよいのですか? CGIの言語は何ですか? Perlが主流ですがC言語等の可能性もあります。 わからないのならPerlと判断します。 CGIで無いとだめですか? Javascriptのほうが簡単に同じようなことができます。 ただ、Javascriptではソースを見れば次にどの画像が来るか調べることができてしまいます。

tibox00
質問者

補足

ご回答ありがとうございます。 一日の間はづっと同じにしたいです。 言語はPerlでお願いします。 携帯サイトにも対応させたいのでCGIじゃないと 出来ないのでは思ったのですが、 Javascriptの方が簡単ですか? ご回答よろしくお願いします。

すると、全ての回答が全文表示されます。

関連するQ&A