출처 : http://qnrdlqkrwhdgns.canxan.com/jpboard/post/491
일단, 브라우저가 gzip을 지원하는지 여부를 알아야한다.function hasAcceptEncoding($encoding) {
return (stripos($_SERVER['HTTP_ACCEPT_ENCODING'], $encoding) !== false);
}
그리고 gzip을 사용한다고 브라우저에 알려야한다.header('Content-Encoding: gzip');
마지막으로 gzip 인코딩으로 압축해서 뿌리면 된다.'echo gzencode($content);
JpBoard에서는 기본적으로 gzip 인코딩으로 압축전송을 한다.
실험해본결과 8KB의 경우 2KB 정로도 압축이 되었다.(보통 1/4 ~ 1/3 정도로 사이즈가 줄여지며 압축이 되었다.)
JpBoard에서는 ob_start() 를 이용해서 일단, 출력하지 않고 출력될 내용을 특정 변수에다 모아놓은 다음
gzip 인코딩을 한뒤 출력을 한다.
전체적으로 소스를 보자면(/jpboard.php 파일을 참고)$documentBuffer = $headBuffer.$contentBuffer.$footBuffer;
if(hasAcceptEncoding('gzip') && Config::get('useGzip')) {
header('Content-Encoding: gzip');
$documentBuffer = gzencode($documentBuffer);
}
echo $documentBuffer;
'Development > PHP' 카테고리의 다른 글
SQL Server Driver - Case 1 <미테스트> (0) | 2013.06.21 |
---|---|
IIS7 PHP 이클립스 디버깅 (0) | 2013.06.21 |
IIS7 에서 CodeIgniter index.php 제거 하기 (0) | 2013.02.20 |
CodeIgniter(PHP) 에서 MS-SQL 설정 (0) | 2012.11.12 |
Visual Studio 에서 PHP 템플릿 적용시키기 (0) | 2012.04.23 |
댓글