From b2f108d1246099e753a933f7a8d6ad9a2286ba41 Mon Sep 17 00:00:00 2001 From: Kijin Sung Date: Wed, 25 Feb 2015 12:32:54 +0900 Subject: [PATCH] Fix incorrect gzip encoding when output already exists --- classes/display/DisplayHandler.class.php | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/classes/display/DisplayHandler.class.php b/classes/display/DisplayHandler.class.php index 4ee8f25aa..e4bca38da 100644 --- a/classes/display/DisplayHandler.class.php +++ b/classes/display/DisplayHandler.class.php @@ -84,10 +84,6 @@ class DisplayHandler extends Handler } // header output - if($this->gz_enabled) - { - header("Content-Encoding: gzip"); - } $httpStatusCode = $oModule->getHttpStatusCode(); if($httpStatusCode && $httpStatusCode != 200) @@ -114,9 +110,17 @@ class DisplayHandler extends Handler $this->content_size = strlen($output); $output .= $this->_debugOutput(); + // disable gzip if output already exists + ob_flush(); + if(headers_sent()) + { + $this->gz_enabled = FALSE; + } + // results directly output if($this->gz_enabled) { + header("Content-Encoding: gzip"); print ob_gzhandler($output, 5); } else