我正在使用this answer中的代码来缩小HTML,然后使用ob_gzhandler
来gzip页面(因为mode_deflate
在我的共享服务器上被禁用,因此我无法gzip in .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")
都可以自行运行,但是将它们组合会导致内容编码错误:
我该怎么办?
答案 0 :(得分:0)
您需要在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();
。