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

PHPの変数に01と代入し、echoで表示させると1になってしまうのですが、01をダブルクオーテーションでくくらないで、01と表示させる方法はありますか?

A 回答 (5件)

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;
}
    • good
    • 0

3です。


肝心なの書き忘れてた。
echo sprintf("%02d",1);

この回答への補足

ありがとうございます。ためしてみます。

補足日時:2007/12/19 11:31
    • good
    • 0

この手の質問の定番ですが


echo sprintf("%c%c",48,49);

echo chr(48) . chr(49);
でもいけますな。
普通はクォート囲みですけどね・・・
    • good
    • 0

01をファイルに保存しておいて、それを表示するようにすれば


”でくくらなくてもできます。
    • good
    • 0

>ダブルクオーテーションでくくらないで、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だよ";
}
?>

補足日時:2007/12/19 11:35
    • good
    • 0

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