- 締切済み
phpの変数に01と格納したい。
PHPの変数に01と代入し、echoで表示させると1になってしまうのですが、01をダブルクオーテーションでくくらないで、01と表示させる方法はありますか?
- みんなの回答 (5)
- 専門家の回答
みんなの回答
- wp_
- ベストアンサー率54% (132/242)
while((file_exists($fname))){ echo "<img src=\"" . $filepath.$f.$name . "\" width=\"250\" height=\"50\">"; $f=$f+1; $fname=$filepath.$f.$name; } 上記ですが、 echo "<img src=\"" . $fname . "\" width=\"250\" height=\"50\">"; の間違いですかね。 imgタグの中のsrcが「images/2.gif」のようになり、02.gifが呼ばれず×印になってしまう気がします。 数字($f)はフラグとして捉え、while内でパスを生成すると以下になりますな。 $f = 1; //初期化 while((file_exists($fname))){ echo "<img src=\"" . $fname . "\" width=\"250\" height=\"50\">"; $f=$f+1; $fname=$filepath.sprintf('%02d',$f).$name; }
- wp_
- ベストアンサー率54% (132/242)
3です。 肝心なの書き忘れてた。 echo sprintf("%02d",1);
- wp_
- ベストアンサー率54% (132/242)
この手の質問の定番ですが echo sprintf("%c%c",48,49); や echo chr(48) . chr(49); でもいけますな。 普通はクォート囲みですけどね・・・
- memphis
- ベストアンサー率40% (975/2395)
01をファイルに保存しておいて、それを表示するようにすれば ”でくくらなくてもできます。
- yambejp
- ベストアンサー率51% (3827/7415)
>ダブルクオーテーションでくくらないで、01と表示させる なぜダブルクォーテーションでくくらない必要があるのか書かないと 答えようがないですね。 文字列はクォーテーションでくくるというのはなんのプログラムでも 鉄則だと思いますが・・
補足
画像ファイルがあるかをfile_exists関数で問合せ、ファイルがある間はwhile文でループさせて画像を表示させようとしています。 そのさいに、01.gifというから02.gif 03.gifのように表示させていこうかとおもったのですが、(ファイル数がいくつあるかわからないので)(ただ、いい方法かどうか疑問なところです・・・) ダブルクオーテーションでかこむと文字になりますが、ファイル名の01を+1づつするので、数字のような扱いをするから、文字を数値のようにあつかうのが気持ち悪かったのです。 以下ソースです。 <?php $filepath="images/"; $f="01"; $name=".gif"; $fname=$filepath.$f.$name; if(file_exists($fname)){ ?> <img src="<?php echo $filepath . $f . $name ?>" width="250" height="50"> <?php while((file_exists($fname))){ echo "<img src=\"" . $filepath.$f.$name . "\" width=\"250\" height=\"50\">"; $f=$f+1; $fname=$filepath.$f.$name; } ?> <?php } else{ echo "elseだよ"; } ?>
補足
ありがとうございます。ためしてみます。