@Hecktosaurus
Люблю писать код под специфические задачи

Почему сбрасывается ob_start()?

Сайт на битриксе. Нужно производить некоторые манипуляции с разметкой на страницах; для этого хотел в шаблоне буферизовать вывод, затем обработать полученное и отдать посетителю, но обнаружил, что ob_get_clean() возвращает только часть html. Пример:

<?

// Включаю буферизацию
ob_start();

?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?=LANGUAGE_ID?>" lang="<?=LANGUAGE_ID?>" <?=($htmlClass ? 'class="'.$htmlClass.'"' : '')?>>
<head>
	<!-- разметка -->
</head>

<!-- дальше идёт разный код -->

</html>
<?php

    // пытаюсь получить буфер и просто вывести его,
    // но получаю фрагмент не с 7 строки, а уже откуда-то в конце
    $modified_output = ob_get_clean();
    echo $modified_output;

?>


Просто интересно, почему ob_start()/ob_get_clean() отдаёт не всю разметку, а только кусочек?
  • Вопрос задан
  • 353 просмотра
Решения вопроса 1
Adamos
@Adamos
Битрикс буферизирует все сам. С момента подключения header и по самый footer. Вот вы с ним и конфликтуете.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы