ob_clean不清除头文件之前的输出?

时间:2012-01-14 19:44:05

标签: php header buffer

我正面临着这个问题。我更改了db.php文件,不幸的是我在php标签之前和之后放了空格。我在image.php文件中使用了这个。我收到的错误标题已经发送了。我知道了这是因为db.php中的空格,但我在image.php中使用了ob_clean。

以下是代码。

  spaceishere<?php
  $con=mysql_connect("localhost", "username", "password") or die ('I cannot connect to the           database because: ' . mysql_error());
  mysql_select_db("dbname",$con) or die  ("Cannot Connect to Database");
  ?>andhere  

image.php文件包含

的代码
<?php
require_once('db.php');
$sql="mysqlquery";
$query = mysql_query($sql); 
$row = mysql_fetch_assoc($query);
ob_clean();
header("content-type:image/jpg") ; 
echo stripslashes($row[imagecolumn]); 
?>

当我删除db.php中的空格时,一切正常。但是我无法理解为什么我的ob_clean不起作用。

你可以请任何人解释它。我不想更改db.php文件。因为我有问题。请不要问这是什么问题。

我想在image.php中完成所有更改以使其正常工作。

请帮忙。

2 个答案:

答案 0 :(得分:12)

您应首先通过在加入之前拨打ob_start();来启动输出缓冲。

答案 1 :(得分:-1)

我认为那是因为你不是在“php”-mode所以php不知道某些东西在输出缓冲区内,因为它只知道php解析的东西和php-tags内的东西。 所以在你的情况下,空格在php标签之外,所以php不知道这个并且不能“清理”它。