From d55b8ad94a1383af1ecf8f7343da90e14fdf6211 Mon Sep 17 00:00:00 2001 From: zero Date: Wed, 22 Aug 2007 01:49:42 +0000 Subject: [PATCH] =?UTF-8?q?#109.=20HTML=EC=B6=9C=EB=A0=A5=EC=8B=9C=20gzip?= =?UTF-8?q?=20compress=EB=A1=9C=20=EC=B6=9C=EB=A0=A5=ED=95=A0=20=EC=88=98?= =?UTF-8?q?=20=EC=9E=88=EB=8F=84=EB=A1=9D=20=ED=99=98=EA=B2=BD=20=EC=B2=B4?= =?UTF-8?q?=ED=81=AC=ED=9B=84=20=EC=95=95=EC=B6=95=20=EC=B6=9C=EB=A0=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://xe-core.googlecode.com/svn/sandbox@2372 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- classes/display/DisplayHandler.class.php | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/classes/display/DisplayHandler.class.php b/classes/display/DisplayHandler.class.php index 4f7b7ab9a..e6f8664a5 100644 --- a/classes/display/DisplayHandler.class.php +++ b/classes/display/DisplayHandler.class.php @@ -14,11 +14,16 @@ var $content_size = 0; ///< 출력하는 컨텐츠의 사이즈 + var $gz_enabled = false; ///< gzip 압축하여 컨텐츠 호출할 것인지에 대한 flag변수 + /** * @brief 모듈객체를 받아서 content 출력 **/ function printContent(&$oModule) { + // gzip encoding 지원 여부 체크 + if(strpos($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip')!==false && function_exists('ob_gzhandler') ) $this->gz_enabled = true; + // header 출력 $this->_printHeader(); @@ -86,7 +91,10 @@ // files로 시작되는 src나 href의 값을 절대경로로 변경 $content = preg_replace('!(href|src)=("|\'){0,1}files!is', '\\1=\\2'.$path.'files', $content); - print preg_replace('!(href|src)=("|\'){0,1}\.\/([a-zA-Z0-9\_^\/]+)\/!is', '\\1=\\2'.$path.'$3/', $content); + $content = preg_replace('!(href|src)=("|\'){0,1}\.\/([a-zA-Z0-9\_^\/]+)\/!is', '\\1=\\2'.$path.'$3/', $content); + + if($this->gz_enabled) print ob_gzhandler($content, 5); + else print $content; } /** @@ -208,6 +216,8 @@ function _printHeader() { if(Context::getResponseMethod() != 'HTML') return $this->_printXMLHeader(); else return $this->_printHTMLHeader(); + + if($this->gz_enabled) header("Content-Encoding: gzip"); } /**