Итак, глядя на исходный код PHP для ob_flush()
, в котором и генерируется ошибка "failed to flush buffer. No buffer to flush
", получается, что ошибка генерируется, если нет активного выходного буфера.
Исходя из исходного кода PHP, ob_end_flush()
никогда не должен приводить к этой ошибке - это не может быть, ее нет в коде.Вы уверены, что в вашем коде нет ob_flush()
, который вы не включили в то, что делитесь с нами в своем вопросе?
В любом случае, вы не проверяете возвращаемое значениеиз ob_start()
- он может потерпеть неудачу, и если ему не удастся создать новый выходной буфер, то последующие ob_flush()
или ob_end_flush()
потерпят неудачу, потому что эти команды требуют активного выходного буфера для функционирования, и если нет 'Таким образом, они будут выдавать ошибки.
В исходном тексте PHP для ob_end_flush()
вы можете видеть, что ошибка, которую он выдает, когда нет активного выходного буфера, равна "failed to delete and flush buffer. No buffer to delete or flush
".