繁体   English   中英

在PHP中更改标题内容类型

[英]change header content-type in php

我正在使用此代码

$query = mysql_query("SELECT Image, Col2, Col3 FROM table ");
$row = mysql_fetch_array($query);
$content = $row['Image'];
header('Content-type: image/jpg');
echo $content;  
echo $row['Col2'];
echo $row['Col3'];

问题是,一旦我执行'Content-type: image/jpg' ,其他Col2和Col3就不会显示。 它们不是图像,而只是文本行。 如何同时显示图像和文本?

将标题内容类型设置为image / jpg时,浏览器仅需要图像二进制数据。 回显具有此内容类型的文本将破坏图像二进制文件,并且不会显示该文本。

在不更改标题的情况下,您可以将图像编码为图像标签:

echo '<img src="data:image/jpg;base64,' . base64_encode($content) . '" />';
echo $row['Col2'];
echo $row['Col3'];

你不能自己...

您正在发送内容类型的图像数据,这意味着您发送的所有数据都被解释为构成图像的数据字节。

看到数据的唯一方法是使用header()函数发送对浏览器无用的任意数据。 然后使用您使用的Firebug或Wathever浏览器控制台,查找NETWORK选项卡,打开对图像的请求,然后检查headers选项卡,您将在此处看到数据,但无法向用户显示该数据。

header('mydata2: '.$row['Col2']);
header('mydata3: '.$row['Col3']);
header('Content-type: image/jpg');
echo $content;

另一种怪异的方法是使用GD在图像上打印文本,但是那可能不是您想要的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM