ob_start("callback") и размер контента

seva2

Партнер PHPClub.ru
ob_start("callback") и размер контента

Заметил такую фишку, что если страница длинная то ob_start отрабатывает и в фунцию передает пустой контент... как это можно исправить?
 

seva2

Партнер PHPClub.ru
Pigmeich обстарт возвращает в функции callback контент страницы....

Страницы где мало контента отрабатывают, где много текста(контента) не передается
 

AmdY

Пью пиво
Команда форума
Посмотри phpinfo(); возможно стоит лимит на размер
 

FractalizeR

Новичок
Автор оригинала: seva2
Pigmeich обстарт возвращает в функции callback контент страницы....

Страницы где мало контента отрабатывают, где много текста(контента) не передается
Пример кода вы могли бы привести?
 

alexcrown

Новичок
Обрати внимание на второй параметр функции ob_start - chunk_size - максимальный размер буфера. Если он не задан, то в callback-функцию данные передаются все и в конце (т.е. на первом ob_end...). Вполне возможно что срабатывает некое ограничение в твоей функции.

Попробуй установи это параметр равным, например 4096. Тогда callback-функция вызываться для каждых 4кБ полученных данных. Правда при этом результат её работы отправляется сразу в браузер.
 

FractalizeR

Новичок
Автор оригинала: alexcrown
Обрати внимание на второй параметр функции ob_start - chunk_size - максимальный размер буфера. Если он не задан, то в callback-функцию данные передаются все и в конце (т.е. на первом ob_end...).
Либо в самом конце скрипта

Попробуй установи это параметр равным, например 4096. Тогда callback-функция вызываться для каждых 4кБ полученных данных. Правда при этом результат её работы отправляется сразу в браузер.
Почему сразу в браузер? Вроде бы мануал ничего не говорит на этот счет.
 

alexcrown

Новичок
Почему сразу в браузер? Вроде бы мануал ничего не говорит на этот счет.
Ну, во-первых, я проверил, а во-вторых, мануал как раз говорит об этом. В описании параметра: the buffer will be flushed after any output call which causes the buffer's length to equal or exceed chunk_size

В принципе, если нужно иметь возможность очистить буфер, можно обернуть наш ob_start еще в один без callback-функции.
 
Сверху