php输出图片无法显示,文件头部有空白

php输出图片文件到前台(imagejpeg),从浏览器保存无法显示的图片,用记事本打开发现,相比服务器端产生的图片(imagejpeg所生产),头部多了3行空白,<head。。。。。>前 使用 ob_clean,发现空行变成2行。,我想是不是环境问题,本地是wamp
2026年09月24日 09:29
有4个网友回答
网友(1):

你在第2种方式里,除了 img 输出外,还有其它输出。

请参看下面的示例代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

php
// 创建新的图像实例
$im = imagecreatetruecolor(100, 100);
// 设置背景为白色
imagefilledrectangle($im, 0, 0, 99, 99, 0xFFFFFF);
//在图像上写字
imagestring($im, 3, 40, 20, 'GD Library', 0xFFBA00);

//echo "这一行如果加上就不能正常显示下面的图像了。";

// 输出图像到浏览器
header('Content-Type: image/gif');
imagegif($im);

imagedestroy($im);
?>

为什么第 2 种方式,不能在header前面有内容,究其原因,请参看以下说明:

header()必须在任何实际输出之前调用,不管是普通的html标签,还是文件里面的空行、空格或者是PHP文件里的空行、空格。

简单一句话:在header()被调用之前有输出就会出错。

网友(2):

PHP头加这句了吗?
header("content-type:image/jpeg");

网友(3):

清除程序文件的bom头试试

网友(4):

文件输出页面是否写了html标签的代码?如果有的话,删除掉html代码测试下