Примечание: ob_end_flush (): не удалось отправить буфер сжатия вывода zlib (1) в

У меня нет проблем на локальном хосте. но когда я тестировал свои коды на сервере, в конце каждой страницы я вижу это уведомление.

мой код:

<?php
ob_start();
include 'view.php';

$data = ob_get_contents();
ob_end_clean();
include 'master.php';
ob_end_flush();  // Problem is this line

Ответы на вопрос(4)

WordPress пытается сбросить выходные буферы при завершении работы. Не удается, потому что вы уже позвонилиob_end_flush().

Вы должны быть в состоянии сохранить сжатие и просто отцепить действие сброса:

remove_action( 'shutdown', 'wp_ob_end_flush_all', 1 );

Теперь вы можете позвонитьob_end_flush() вручную и включите сжатие zlib.

 Brian C25 авг. 2019 г., 15:24
Это загадка, почему мы должны удалить вызов wp_ob_end_flush_all (), так как он фактически использует уровень буфера (через ob_get_level () - смотритекод здесь). Он должен автоматически определять уровень и запускать только правильное количество вызовов ob_end_flush (), но вместо этого он запускает слишком много. Кажется, это ошибка!
 Niladri Das02 авг. 2019 г., 08:11
Благодарю. куда мне поместить этот код?

Я обнаружил, что конкретный плагин был причиной на одном из WP-сайтов нашего клиента.

В этом случае это было вызвано плагином «Галерея NextGEN», но странно, просто отключение и последующая активация плагина решили проблему.

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

 wadclapp17 мая 2019 г., 19:39
Плагин (WP Smush) тоже вызвал проблему для меня. Хотя удаление и переустановка его исправили, а не отключили / включили.

Я встречал эту проблему, как вы раньше. Я попытался отключить режим отладки WordPress, и он решен. Вы можете отключить режим WP отладки в/wp-config.php :

define('WP_DEBUG', FALSE);
 Casper04 окт. 2018 г., 18:06
Это не исправит ошибку, а скроет ее.
 Adambean09 окт. 2018 г., 13:47
Что сказал @Каспер На самом деле это может быть хуже, поскольку вы можете просто получить белую страницу без указания того, что пошло не так, особенно с ответом HTTP OK [200]. Режим отладки должен оставаться включенным до тех пор, пока проблема не будет решена, а затем отключена.
Решение Вопроса

Это решается при выключении zlib.output_compression вphp.ini

zlib.output_compression = Off

 Swen28 сент. 2018 г., 13:22
Отключение сжатия gzip не кажется мне правильным решением.
 Robert Andrews24 июл. 2018 г., 13:41
Да, это устраняет ошибку.
 Adambean09 окт. 2018 г., 13:40
Я согласен с @Swen. Сжатие вывода (будь то дефляция или gzip) почти всегда дает положительные результаты в тестах SEO, включая понимание Google PageSpeed. Отключение может нанести вред вашей позиции в результатах поиска, поскольку это увеличит время загрузки для мобильных пользователей.

Ваш ответ на вопрос