2015-10-09 75 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