[英]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.