我发现此函数在使用PHP(使用GD)处理或创建图像时非常有用。
我花了相当长的时间搜索大量包含的文件,以查找我在PHP的结束标签后是否有不需要的空格 - 因为这导致了我所有动态生成的图像由于输出已设置而中断。更令人恼火的是,这并没有被PHP的错误报告捕获,因此我的日志文件中没有对问题行(s)的引用。我不知道为什么错误报告不会捕获到这一点,因为它被设置为接受警告,并且过去曾捕获过同样的问题。
尽管如此,我仍然没有找到在生成图像之前添加额外空格或换行符的行(s),但我所做的是在我的图像处理代码之前以及include/require代码之后添加这个方便的函数。
例如
<?php
require ("lib/somelibrary.php");
require ("lib/class/someclass.php");
ob_clean();
header("Content-type: image/gif");
$im = imagecreate (100, 50);
imagegif($im);
imagedestroy($im);
?>
虽然这似乎是该函数的一个微不足道的用法,但它实际上对于确保在PHP中创建图像时没有额外的空格或换行符已经被输出非常有用。正如你们许多人可能已经知道的那样,在图像代码之前出现的额外行、空格和填充将阻止图像的创建。如果文件“lib/somelibrary.php”在结束的PHP标签后有多余的换行符,那么它将完全阻止上述脚本中的图像工作。
如果您像我一样在一个包含大量源文件和所需文件的超大型项目上工作,那么强烈建议您在PHP中创建图像之前始终清除输出缓冲区。