• ベストアンサー

日付によって画像を変える

日付によって画像を変える方法、記述はありますでしょうか? 8/1はA 8/2はB といった具合にです。 phpに関しては初心者なので分かりやすく教えていただけたら幸いです。 よろしくお願いいたします。

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

  • ベストアンサー
  • exists
  • ベストアンサー率62% (27/43)
回答No.3

こんにちは、 画像ファイルの名前を1から31まで、1.jpg 2.jpg というように変更します。 それらのファイルを、8月なら、8という名前のホルダに保存します。 次に、phpスクリプトで、今日の日付のファイル名で、自動的にアクセスできるスクリプトを書きます。 例えば、 <?php $month = date("n"); $date = date("j"); $url = "http://......これは8というホルダまでのURL最後は/で終わる事"; $result = $url.$month.'/'.$date.'.jpg'; //必ずシングルクウォートを使ってください。 ?> <html> <head><!--…略…--></head> <body> <img src="<?php echo $result;?>" alt="image" width="300" height="200"> </body> </html> という風に書くと、毎日違う画像を表示できます。 初心者です。と強調してあるので、余計なことを書きます。 画像を変更することは、PHPだけが出来ることではありません。 日ごとに画像を変更するだけなら、javascript等でも簡単に出来ます。 PHPを使う楽しみは、画像を合成するとか、例えば、画像に日付を合成して、実際にその画像を作ってしまうとかたくさんあります。 そのステップにされるつもりなら、ぜひがんばってみてください。 上に、回答したスクリプトは、簡単なものですが、実際に動作を確認してありますから、ちゃんと表示できるので安心してやってみてください。

hamamann
質問者

お礼

回答遅れましてすいません。 実際試してみました。 大変助かりました。 ありがとうございました。

その他の回答 (3)

回答No.4

日付によって画像を変える方法はいくつかありますが、A、B、C...と日付の数、一年分の画像を指定すると言うことでしょうか? それともA、Bを一定の制限で(偶数日、奇数日など)で表示させると言うことでしょうか? <?php $date = date("md");//mは月、dは日を2桁で定義します if($date=="0801"){ $img = "a.jpg"; }elseif($date=="0802"){ $img = "b.jpg"; }elseif($date=="0803"){ $img = "c.jpg"; } //以後繰り返し echo "<img src=\"$img\">"; ?> 上記で8/1にa.jpg、8/2にb.jpgを表示します。が、一年分を指定するのは大変なので・・ ファイル名を日付にして○○フォルダ内に0801.jpg・0802.jpg・0803.jpg・・・としておき、 <?php $date = date("md"); $img = $date.".jpg"; echo "<img src=\"$img\">"; ?> 上記ではアクセスの日付と同じ名前の画像ファイルを表示します。 また、偶数奇数などの条件を設定する場合は <?php $date = date("md"); if($date % 2 == 0) {//偶数 $img = "a.jpg"; }else{//奇数 $img = "b.jpg"; } echo "<img src=\"$img\">"; ?> という感じでif内に条件を指定して、画像を表示します。

hamamann
質問者

お礼

回答遅れましてすいません。 偶数奇数などの条件を設定する方法もあるのですね。 参考になりました。ありがとうございました。

  • Suzi
  • ベストアンサー率38% (130/334)
回答No.2

 アクセスした時の日付は、$access_day = date('md', time()); で、$access_day には、0801 とかになります。  表示したい画像を一つのフォルダ「image」に入れ、0801.jpg・0802.jpg・0803.jpg・・・・。  そして表示する画像のパスとして、 print "<img src =\"./image/" . $access_day . ".jpg\" width=200 height=150 border=0>";  とかすれば良いと思います。  上記文字化けで ? となっているのは、バックスラッシュです。

hamamann
質問者

お礼

お返事遅くなりすいません。 ご返答ありがとうございます。 早速試してみたいと思います。 ありがとうございました。

hamamann
質問者

補足

すいません、未熟者なので上手くいきません・・。 もし見ていたら記述例があれば嬉しいです。

  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.1

> 8/1はA > 8/2はB 8/31はどうしましょうか。 9/1は? 来年の8/1や8/2は? 変換後の'A'とか'B'は、他の日付を変換した結果と重複してもいいですか?重複してはいけませんか?

hamamann
質問者

お礼

お返事遅くなりすいません。 ご返答ありがとうございます。

関連するQ&A