将图像(图表)输出到浏览器

时间:2010-10-22 10:09:14

标签: php html

我目前正在尝试输出图像(使用PHP生成的图表)。 获得我需要的所有数据后,我只需将图像输出到磁盘:

imagepng($img, "img/graf.png", 0);
imagedestroy($img); 

然后我调用页面上的图像,但浏览器始终使用缓存的图像而不是新生成的图像。 所以我试图将图像输出到浏览器。

主页是 k_b.php 。 当我使用

调用文件 grafico.php 时,会生成图表
include 'grafico.php';

出现在k_b.php文件中。 然后我有一些代码显示不同的按钮/文本取决于其他因素,但我必须显示该图表。

当我尝试将图表直接输出到浏览器时,我只显示图表而没有其他内容。与imagepng($img);

编辑: 在网上发现它似乎工作;

ob_start();
imagepng($img);
$contents =  ob_get_contents();
ob_end_clean();
$imagem = "<img src='data:image/png;base64,".base64_encode($contents)."' />";
imagedestroy($img);

2 个答案:

答案 0 :(得分:1)

如果您想再次尝试将图像保存到磁盘并使用普通的HML <img>标记指向它,则每次添加不同的查询字符串应该会阻止浏览器显示缓存版本。

<img src="img/graph.png?<?= time() ?>" />

答案 1 :(得分:0)

如果带有imagepng($img);的脚本将图像发送到浏览器,您可以使用

<img src="grafico.php" alt="" />

将图像放入html文件中。