解决PHP无法创建图片问题

最近一位同事使用PHP的Image图像函数创建图像文件,代码如下:

$im = imagecreatetruecolor(100, 100);header(“Content-type: image/png”);imagepng($im);imagedestroy($im);

图片始终无法,在IE下也没有错误提示。可是同样的代码拷贝到我的PHP文件里,运行后可以在浏览器中显示图像,这说明这段代码是没有错误的。那问题的原因出在什么地方了呢?

相同的代码,相同的文件编码格式,不过还是抱着试一试的想法,在header()函数前加了一个清除缓存的ob_clean()函数,程序运行后,果然图片创建成功了。

ob_clean()函数的作用是用来清除header()函数之前的输出字符,可是整个代码都没有输出字符,那这些字符最大的可能性就是程序自动生成的。

程序自动生成字符,文件的编码格式使用的是UTF8,想到很有可能是UTF8 BOM引起的问题,UTF8 BOM又叫UTF8签名,它在文件头插入了一个表示文件编码的信息\xef\xbb\xbf,导致了图像的格式不正确,无法创建图片。

后来,使用编辑器(Notepad )将文件格式修改成UTF8 无 BOM格式,删掉程序中的ob_clean()函数,保存,刷新,嘿嘿,果然成功了。万恶的编辑器,原来Notepad 把UTF8   BOM 作为它文件的UTF8的默认格式,而我使用的编辑器ZendStudio的UTF8格式是不加BOM的。

我是丁哥,我怕谁!