Ну, ответ был далеко, и это был не мой сценарий. Перед любым HTML-тэгом я загружаю весь контент, если определены пользовательские заголовки, я только показываю контент (полученный из шаблонов)
<?php
//get stuff
if(empty($page->customHeader)): ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title><?php print $page->title ?></title>
</head>
<body>
<div class="container">
<div class="header">
</div>
<div class="content">
<?php print $page->content ?>
</div>
<div class="footer">
</div>
</div>
</body>
</html>
<?php else:
print $page->content;
endif; ?>
Для шаблонов я использую ob_get_contents (), поэтому в реальном шаблоне я отображаю / печатаю данные. По какой-то причине ob_get_contents () не получает это должным образом, так что именно здесь все пошло не так.
Теперь я определяю свои заголовки в массиве и путь к содержимому в другой переменной и вызываю это.
...
</html>
<?php else:
foreach($page->customHeader as $header) {
header($header, true);
}
readfile($page->headerContent);
endif; ?>
Короче говоря:
ob_get_contents () не получает двоичный контент.
Спасибо, ребята, определенно собираюсь поблагодарить вас за работу и довольно полезную информацию!