警告:无法修改标头信息 - 已发送的标头

时间:2010-05-04 10:10:51

标签: gd php

当我尝试运行此文件时,我收到此错误。

<?php

$im = imagecreatetruecolor(100, 100);

// sets background to red
$red = imagecolorallocate($im, 255, 0, 0);
imagefill($im, 0, 0, $red);

header('Content-type: image/png');
imagepng($im);
imagedestroy($im);
?>

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp1\htdocs\check\2.php:1) in C:\xampp1\htdocs\check\2.php on line 7
�PNG  ��� IHDR���n������V,����PLTE����[an����fIDAT�c`�`fx���`Ǡ����41����˖ݒ�q�@੤;{á0� �i 

3 个答案:

答案 0 :(得分:2)

如果那是完整的脚本,并且开头<?php标签前面没有显示任何内容(您的编辑器可能有一个“可见空白”选项可以显示任何内容),另一件事可能是该文件是否已保存为UTF8,并且文件中的前几个字符具有“BOM”。将其重新保存为纯文本(可能是“ANSI”)可能会改善问题。

另一种可能性是在运行脚本之前正在预先添加文件。这可能有输出,或者在关闭php标记之后尾随内容(我的建议 - 除非特别要求,否则没有关闭的PHP标记)。

header('Content-type: image/png');移动到脚本顶部不会受到影响,除非在开始标记之前确实输出了某些内容。

答案 1 :(得分:0)

Alister说了一切可能导致错误的事情,但还有一件事。 PHP可能会抛出一些错误/警告/通知。删除标题并检查是否没有错误。

答案 2 :(得分:0)

使用此给定代码...我希望你不会发现任何错误