Я использую код из этот ответ минимизировать HTML, а затем ob_gzhandler
сжать страницу (потому что mode_deflate
отключен на моем общем сервере, и поэтому я не могу сжать в .htaccess):
function sanitize_output($buffer) {
$buffer = preg_replace('/[\r\n]+\s*/', '', $buffer);
return $buffer;
}
ob_start("sanitize_output");
if(!ob_start("ob_gzhandler")) ob_start();
И то и другое ob_start("sanitize_output")
а также ob_start("ob_gzhandler")
работают хорошо сами по себе, но их объединение приводит к ошибке кодирования контента:
Что я могу сделать?
Вам нужно поставить ob_start("ob_gzhandler")
до ob_start("sanitize_output")
function sanitize_output($buffer) {
$buffer = preg_replace('/[\r\n]+\s*/', '', $buffer);
return $buffer;
}
if(substr_count($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip')){
ob_end_clean();
ob_start('ob_gzhandler');
ob_start("sanitize_output");
}
else {
ob_start();
}
Не забудьте использовать ob_end_flush();
в конце.
Других решений пока нет …