PHP显示来自MySQL里面的BLOB图像BLOB< _END

时间:2015-10-09 23:58:51

标签: php mysql echo blob

我正在尝试显示来自MySQL的图像,它的工作原理如下:

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”。 所以我在下面有这个,但它不起作用!我尝试了所有类型的不同转义字符,但仍然没有。

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]行完美无缺!但另一方却没有。

有什么想法吗?

3 个答案:

答案 0 :(得分:1)

您可以切换回HTML模式,而不是here-doc,然后在其中使用<?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

答案 1 :(得分: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;

使用&#34;而不是&#39;,引号比单引号具有更好的性能。

另一种显示方式(如果你将它显示在浏览器中),在生成的内容中只使用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>

答案 2 :(得分: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;