ob_start не выполняет обратный вызов - PullRequest
7 голосов
/ 15 мая 2011

У меня проблемы с ob_start.Не уверен, что это за сделка, но я довел ее до простейшего возможного контрольного примера ... все еще безрезультатно.Я ожидал бы, что этот код выведет 'bar' на стандартный вывод, но я ничего не получаю, и в моем журнале ошибок нет ошибок.

<?php
function gzhandler_ex($buffer, $mode)
{
    echo 'bar';
}

ob_start('gzhandler_ex');
echo 'foo';
ob_flush(); 

Я никогда раньше этого не видел, но я необычно не используют такие обратные вызовы.

1 Ответ

9 голосов
/ 15 мая 2011

Ваша функция-обработчик должна return выводить содержимое, а не отображать его.

function gzhandler_ex($buffer, $mode)
{
    return 'bar';
}

Кроме того, ob_flush() не требуется при вызове в конце сценария;это неявное.

...