アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

A 回答 (4件)

こんにちは、



画像ファイルの名前を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を使う楽しみは、画像を合成するとか、例えば、画像に日付を合成して、実際にその画像を作ってしまうとかたくさんあります。
そのステップにされるつもりなら、ぜひがんばってみてください。

上に、回答したスクリプトは、簡単なものですが、実際に動作を確認してありますから、ちゃんと表示できるので安心してやってみてください。
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/08/07 20:03

日付によって画像を変える方法はいくつかありますが、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内に条件を指定して、画像を表示します。
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/08/07 20:06

 アクセスした時の日付は、$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>";

 とかすれば良いと思います。
 上記文字化けで ? となっているのは、バックスラッシュです。

この回答への補足

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

補足日時:2008/08/02 13:49
    • good
    • 0
この回答へのお礼

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

お礼日時:2008/08/02 10:28

> 8/1はA


> 8/2はB

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

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

お礼日時:2008/08/02 10:28

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!