ob_clean не очищает вывод перед файлом заголовка? - PullRequest
3 голосов
/ 14 января 2012

Я столкнулся с проблемой. Я изменил файл db.php и, к сожалению, я поставил пробелы до и после тегов php. Я использовал это в файле image.php. что это из-за пробела в db.php, но я использовал ob_clean в image.php.

Ниже приведен код.

  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 ]

12 голосов
/ 14 января 2012

Сначала вы должны начать буферизацию вывода, сделав вызов ob_start(); перед включением.

0 голосов
/ 14 января 2012

Я думаю, это потому, что вы не находитесь в режиме "php", поэтому php не знает, что что-то находится в буфере вывода, потому что он знает только то, что php анализирует и что внутри php-тегов.Таким образом, в вашем случае пробелы находятся за пределами тега php, поэтому php не знает об этом и не может «очистить» его.

...