Выход из ob_get_clean () усекается до 1024 символов? - PullRequest
1 голос
/ 13 марта 2011

Я работаю над чьим-либо другим кодом, и ~ 800 строк разметки смешаны с тегами. Я пытаюсь применить некоторые шаблоны к этим страницам, и я подумал, что начну с захвата всего вывода в выходном буфере, возврата его в качестве переменной и последующей сортировки по частям.

Проблема в том, что в конце буфера, когда я возвращаю вывод в виде строки, он усекается до 1024 символов. С чего бы это?

Ответы [ 2 ]

0 голосов
/ 13 марта 2011

Эти 1024 байта могут не быть началом вывода.Некоторый контент, возможно, уже прошел выходной буфер.В целях тестирования попробуйте:

ob_start(NULL, 1<<20);  // 1MB buffer

echo ...;

$all = ob_get_contents();
ob_end_clean();

Также проверьте вместо ob_get_flush().Если ничего не помогает, используйте пользовательский обработчик ob_.

0 голосов
/ 13 марта 2011

Обычно этого не происходит, что может означать:

  1. Есть еще один ob_start($callback) с активным определенным обратным вызовом (что говорит ob_get_level?).
  2. Имеются ошибочные манипуляции после ob_get_clean()
  3. Используются ошибочные методы проверки, и отсечение 1024 является некорректным (ограничение xdebug для var_dump, скрытое содержимое в атрибутах html и отсутствие просмотрау источника и т.
...