電子書籍の厳選無料作品が豊富!

お世話になります。phpを触り出している初心者です。携帯に対応させたいのですが、phpだけでいっぱいなので助けてください.

数字が0だったら非表示
2だったら2の画像・・・というようなものを作りたいのですが
imgタグの埋め込み方・記述方法がよくわかりません。
↓数字を文字で表示する方法はこれで一応やってみました。
<?php

$number1 = 0;
$number2 = 2;
$number3 = 3;
$number4 = 4;


if ($number1 == true) {

echo"<p>0は非表示です。";
}
if ($number2 == true) {

echo"<p>1の画像です。";

}
if ($number3 == true) {

echo"<p>2の画像です。";

}
if ($number4 == true) {

echo"<p>3の画像です。";

}


?>

しかし画像がうまくいかずIE6では一種類の画像だけ表示されて
他の新しいブラウザでは文字化けしてる状態です。
それぞれ違う画像を当てはめる場合
どのように数値を増やして記述したらよいのでしょう?
色々試していますがこの記述も正しいのがわかりません。

<?php

$gazou = imagecreatefromgif("img/01.gif");
imagegif($gazou);



?>



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitio …
<html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja">
<head>
<meta http-equiv="content-Type" content="application/xhtml+xml; charset=shift_jis" />
<meta http-equiv="content-style-type" content="text/css" />
<meta http-equiv="pragma" content="no-cache" />
<meta http-equiv="cache-control" content="no-cache" />
<meta http-equiv="expires" content="0" />
<title>数字で分岐して画像を表示</title>
</head>
<body>
<div style="text-align:center;">
<?php

$number1 = 0;
$number2 = 1;
$number3 = 2;
$number4 = 3;


if ($number1 == true) {

echo'<img src="gazou.php" />';

}
if ($number2 == true) {

echo'<img src="gazou.php" />';

}
if ($number3 == true) {

echo'<img src="gazou.php" />';

}
if ($number4 == true) {

echo'<img src="gazou.php" />';

}

?>
</div>
</body>
</html>

A 回答 (13件中11~13件)

下記URLの例文を参考にして下さい。


http://php.online.bg/manual/ja/function.imagegif …

imagegif関数の前に、header関数で、Content-typeを指定します。(指定するというかHTTPヘッダを送出する)
    • good
    • 0
この回答へのお礼

ありがとうございました。お礼が遅くなりすみません。
content-typeというのを入れたら壊れてた画像ファイルが
ちゃんと表示されました。
あと変な文字が消えました。すごいです!!!

ただ1つの画像しか表示されていない状態です。

記述の仕方ですが、この場合 上の部分に↓この記述を入れました
そしてkoke29さんとSylarさんの記述をhtmlのbodyに入れたところ
どちらも1の画像しか出ておりません。・・・がそういうものなのでしょうか?
<?php

$gazou = imagecreatefromgif("img/01.gif");

// 画像をブラウザに出力します
header('Content-type: image/gif');
imagegif($gazou);

?>

お礼日時:2009/06/04 07:05

あ…一部訂正です


echo'<img src="img/'.$gazo[1].'" />';
echo'<img src="img/'.$gazo[$number].'" />';

img/の記述が抜けてました
    • good
    • 0
この回答へのお礼

echo'<img src="img/'.$gazo[2].'" />';
echo'<img src="img/'.$gazo[3].'" />';

・・というのも必要なのですか?

それともecho'<img src="img/'.$gazo[1].'" />';だけで
[2][3]の役目をするのですか?

どちらにしても01.gifしか表示されていません。

お礼日時:2009/06/04 06:56

if ($number1 == true) {


echo'<img src="gazou.php" />';
}

if ($number1 == true) {
echo'<img src="img/01.gif" />';
}
のようにして対応する画像ファイルにすればひとまず表示OKですよね?

で、沢山あると面倒だと思うので 配列での処理の方が楽だと思います

キーを指定する数字、値を画像ファイル名として
$gazo = array(
"1" => "01.gif",
"2" => "02.gif"
);
というような配列を用意してから
echo'<img src="'.$gazo[1].'" />';
とすると1の画像が表示されます

$number = "1";
echo'<img src="'.$gazo[$number].'" />';
これも1の画像表示です

参考になりますでしょうか
    • good
    • 0
この回答へのお礼

返信が遅くなりすみませんでした。
どうもありがとうございました。
上の方はecho'<img src="img/01.gif" />';に直して02.03のパタ-ンを作ったら三つの画像が表示されました。


もう一つのやり方で配列にする方法ですが
gazo = array(
"1" => "01.gif",
"2" => "02.gif"
);
というような配列を用意してから
echo'<img src="'.$gazo[1].'" />';

これは[2]と[3]パターンを作らなくてはいけないのですか?
今のところ01.gifだけが表示されてるようですが・・・

お礼日時:2009/06/04 06:52

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