2015-10-09 74 views
0

我試圖從MySQL顯示一個圖像,它的工作原理是這樣的:PHP顯示圖像BLOB <_END

echo "<tbody>"; 
    echo "<tr>"; 
     echo "<td>$linha[receita_id]"; 
     echo '<td><img src="data:image/jpeg;base64,'.base64_encode($linha['image']).'"/>'; 
    echo "</tr>"; 
echo "</tbody>"; 

我想這樣做,使用php echo <<<_END,因爲我有很多什麼更多的代碼行,我不想爲每一行輸入很多「回顯」。 所以我下面有這個,但它不工作!我嘗試了所有類型的不同轉義字符,但仍然沒有。

echo <<<_END 
    <tbody> 
     <tr> 
      <td>$linha[receita_id] 
      <td><img src="data:image/jpeg;base64,'.base64_encode($linha[image]).'"/> 
     </tr> 
    </tbody>     
_END; 

該行與$linha[receita_id]完美的工作!但另一個沒有。

任何想法?

+0

用於在瀏覽器中顯示? –

+0

您不能在heredoc語法中使用函數。 – CBroe

回答

0

不幸的是,你不能從heredoc中調用函數。您可以做的最好做法是爲您想要輸出的值分配一個變量,例如

$base64_encoded_image = base64_encode($linha["image"]); 
echo <<<_END 
    <tbody> 
     <tr> 
      <td>$linha[receita_id] 
      <td><img src="data:image/jpeg;base64,{$base64_encoded_image}"/> 
     </tr> 
    </tbody>     
_END; 
0

首先,我覺得這是不是顯示那樣使用PHP的內容是一個好主意,但如果你想保存你最初的想法,你可以編寫一個變量和使用串聯,例如:

$content = "<tbody><tr>"; 
$content .= "<td>$linha[receita_id]</td>"; 
$content .= "<td><img src=\"data:image/jpeg;base64," . base64_encode($linha['image']) . "\"/>"; 
$content .= "</tr></tbody>"; 

echo $content; 

使用的「不是」,引號比單引號更好的性能

的另一種方式來顯示(如果你在瀏覽器diplay它),使用PHP的唯一標籤生成的內容:

<tbody> 
    <tr> 
     <td><?php echo $linha['receita_id']; ?></td> 
     <td><img src="data:image/jpeg;base64,<?php echo base64_encode($linha['image']) ?>" /></td> 
    </tr> 
</tbody> 
1

取而代之的是在這裏,文檔,你可以切換回HTML模式,然後使用內<?php echo ... ?>插入PHP值。

?> 
<tbody> 
    <tr> 
     <td><?php echo $linha['receita_id']; ?> 
     <td><img src="data:image/jpeg;base64,'<?php echo base64_encode($linha['image']);?>'"/> 
    </tr> 
</tbody> 
<?php