我正在尝试显示来自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]
行完美无缺!但另一方却没有。
有什么想法吗?
答案 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;