2012-04-28 8 views
0

PHPで動的画像パスをエコーし​​ようとしています。私はPHPを介してダイナミックなHTML画像パスをエコーする

<?php 
//this code works 
$image = '<img src="img/newlogo.jpg">'; 
echo($image); 
?> 
//gives me an image 

と$ lineofstingは、実際には1行が充填されているMySQLデータベースに格納された画像のパスになるだろうではない

<?php 
//this code doesn't 
$lineofstring='newlogo.jpg'; 

$image = '<img src="img/$lineofstring">'; 
echo($image); 
?> 

ん。このコードは動作します。このコードを持っています例えば、pictureabc.jpg、2行目はpicturexyz.jpgなどです。

検索した画像パス名を$ lineofstringに渡そうとしていますが、これはエコーされますが、画像は出力されません。どこが間違っていますか?

+0

二重引用符を使用してください。 – bfavaretto

答えて

4

PHPで変数を補間するには、二重引用符"を使用する必要があります。この場合

$image = "<img src=\"img/$lineofstring\">"; 

、あなたは内側の"をエスケープする必要があります。

また.で、文字列を連結することができます

$image = '<img src="img/' . $lineofstring . '">'; 

それは簡単だ場合。

+1

エコーされたHTMLで一重引用符を使用すると、エスケープする必要がなくなります。 – philwinkle

+0

タンクキリスト教 –

2

$lineofstring変数は一重引用符を使用した文字列です。一重引用符はPHPが文字列を文字通り使用するように指示し、変数が変数として認識されないようにします。それを二重引用符に変更するか、連結を使用して目標を達成してください。

$image = "<img src=\"img/$lineofstring\">"; 

または:

$image = '"<img src="img'.$lineofstring.'">'; 
+0

ありがとうジョン、これは助けた –

0
$profilepicture="images/profiles/".$myid.".gif"; 
$noprofilepicture="images/profiles/no_avatar.gif"; 

echo "<IMG SRC='"; 
if (file_exists($profilepicture)) { 
echo "".$profilepicture.""; 
} else { 
echo "".$noprofilepicture.""; 
} 
echo "'>"; 
関連する問題