Я работал над пользовательской CMS на PHP и до недавнего времени не сталкивался с какими-либо проблемами.При тестировании я заметил, что строка 
начала появляться в верхней части только страницы индекса.При тестировании некоторых операторов die по всему коду кажется, что вывод идет между файлом include.
Файл A
<?php
if (!defined('IN_CMS'))
{
exit;
}
require(INCLUDE_PATH . '/pages/homepage/main.php');
?>
Файл B (включенный файл)
<?php
if (!defined('IN_CMS'))
{
exit;
}
$db->sql_query("SELECT * FROM `" . DB_PREFIX . "categories` active = 1");
$cats = $db->sql_results();
$categories = array();
foreach($cats as $cat)
{
$cat_info = array(
'name' => $cat['name'],
'description' => $cat['description'],
'image' => $setting['site_url'] . '/thumbnails/' . $cat['image'],
);
$categories[] = $cat_info;
}
include theme('index');
?>
Я не могу понять, откуда поступает вывод, но, похоже, он находится где-то между двумя файлами.Я добавил ob_start()
прямо перед строкой включения в файле A и ob_end_clean()
в самом начале включенного файла, и выходные данные не отображаются, однако в этих двух файлах нет случайных выводов.