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

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

мой код:

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

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

Ответ 1

Решено при выключении zlib.output_compression в php.ini

zlib.output_compression = Off

Ответ 2

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

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

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

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

Ответ 3

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

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

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

Ответ 4

Слишком поздно с ответом, но в следующий раз попробуйте найти define('WP_DEBUG', true); на своем веб-сайте wp-config.php и установите true на false, затем сохраните файл.

Ответ 5

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

Если вы хотите скрыть ошибки в Wordpress и получить журнал ошибок для просмотра, вы можете сделать что-то вроде следующего в вашем файле wp-config.php:

// Enable WP_DEBUG mode
define( 'WP_DEBUG', true );

// Enable Debug logging to the /wp-content/debug.log file
define( 'WP_DEBUG_LOG', true );

// Disable display of errors and warnings
define( 'WP_DEBUG_DISPLAY', false );
@ini_set( 'display_errors', 0 );

PS: если вы хотите использовать код remove_action от alexg выше, remove_action('shutdown', 'wp_ob_end_flush_all', 1); вам нужно будет поместить его в файл functions.php вашей темы.

PPS: Вы также можете попробовать использовать define(‘WP_MEMORY_LIMIT,1024M); в своем файле wp-config.php - однако будьте осторожны, чтобы не выделять больше, чем нужно, так как это влияет на внешний интерфейс Wordpress, и вы запустите риск нехватки ОЗУ, если у вас слишком много одновременных обращений к страницам.

Ответ 6

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

define('WP_DEBUG', FALSE);