Ошибка в ob_start('function')

Ilia

Guest
Ошибка в ob_start('function')

Вызывается ob_start('function');
При этом function определяется, исходя из текста страницы, и может содержать ошибки.

Стандартное поведение - все warnings,errors... просто исчезают. В случае E_ERROR получается пустой файл, без какого-либо сообщения.

Как все же вывести сообщение об ошибке на экран в этом случае ?... Или, по крайней мере, получить к нему доступ.
 

su1d

Старожил PHPClubа
это нормально. так и должно быть.
просто хэндлер вызывается уже тогда, когда работа скрипта завершена, и никакого вывода больше не предполагается.

если очень уж хочется что-то вывести, то возвращай из хэндлера весь полученный буфер с добавленным к нему сообщением об ошибке.
PHP:
function handler($buf) {
  return $buf."ERROR!";
}

ob_start("handler");
echo "TEST";
 

Ilia

Guest
Ошибка содержится в тексте самой функции 'function' (у тебя - 'handler'.)
 

su1d

Старожил PHPClubа
это - особенная функция. там не должно быть ошибок =)
 

Ilia

Guest
Да ваще ошибок быть не должно...

Но задача в том, что там есть ошибка нужен по ней рапорт.
E_WARNING можно отловить, E_PARSE вылезет всегда, а E_ERROR пропадают начисто.
 

su1d

Старожил PHPClubа
а зови тогда функцию до окончания работы скрипта, т.е. без вызова ob_start():
PHP:
handler(ob_get_contents());
...и ищи там ошибку. как найдёшь -- поставишь потом всё обратно, где росло.
 
Сверху