2012-11-14 65 views
-1

我想通過使用img標記來顯示數據庫中的圖像。這裏是我的代碼:concatenate img src字符串

if( !empty($cat_id)) { 
    $cats = getImagesByCategory($cat_id); 
    foreach($cats as $image) { 
     $id = $image['id']; 

     echo <<<IMAGE 
     <img src="images/'.$category['name']. '/' .$image['name'].'" /> 
IMAGE; 

我對img標籤得到一個錯誤:Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING

我清楚地串聯錯了 - 我怎樣才能解決這個問題?

+0

RTfineM,請:http://php.net/manual/en/language.types.string.php#language.types.string.parsing – deceze

+0

@Esailija不,這會導致一個'Unexpected end'錯誤,因爲PHP將無法找到HEREDOC的結束標記,假設整個文檔的其餘部分爲HEREDOC。這裏的錯誤是由於錯誤的插值語法。 – deceze

回答

2

<img>標籤被打破:

<img src="images/'.$category['name']. '/' .$image['name'].'" /> 
       ^^^    ^^^ ^^^   ^^^ 

您使用heredoc語法,你不這樣做字符串連接在heredoc。嘗試沿着線的東西:

<img src="images/$category[name]/$image[name]" /> 

乾杯

+0

我修改了代碼,這 '如果(空($ CAT_ID)!){ \t \t $貓= getImagesByCategory($ CAT_ID); \t \t foreach($ cats as $ image){ \t \t \t $ id = $ image ['id']; \t \t \t $ cat_name = $ category ['name']; \t \t \t $ img_name = $ image ['name']; 回聲<<< IMAGE \t msn

+0

類別看圖片'圖片標籤的屬性。提示:這裏有一些重要的東西沒有。 – Madbreaks

-1

你必須的「在你的echo語句的混合和」

只是要回聲是這樣的:

echo '<img src="images/' . $category['name'] . '/' . $image['name'].'"/>' 
1

學習使用printf()系列功能對您長遠來說將非常有用。

printf('<img src="images/%s/%s"/>', $category['name'], $image['name']); 
+0

即時通訊使用php ... – msn

+0

而'printf()'是PHP中的函數,以及幾乎所有其他語言。學習它。愛它。點擊函數名稱,它是PHP文檔的鏈接。 – Sammitch