본문 바로가기

Web/PHP

웹상에 gzip 처리하기

<?
function checkCanGzip() {

     global $HTTP_ACCEPT_ENCODING;
    
     if (headers_sent()) return 0;
     if (strpos($HTTP_ACCEPT_ENCODING, 'x-gzip') !== false) return "x-gzip";
     if (strpos($HTTP_ACCEPT_ENCODING,'gzip') !== false) return "gzip";
     return 0;

}

function gzDocOut() {

     if ($encoding = checkCanGzip()) {
     $contents = ob_get_contents();
     ob_end_clean();
     header("Content-Encoding: ".$encoding);
     print("\x1f\x8b\x08\x00\x00\x00\x00\x00");
     $size = strlen($contents);
     $contents = gzcompress($contents, 9);
     $contents = substr($contents, 0, $size);
     print($contents);
//        print(pack('V', crc32($contents)));
//        print(pack('V', $size));
     exit();
     }
     else {
     ob_end_flush();
     exit();
     }
    
}

ob_start();
ob_implicit_flush(0);

print("your stuff...");

gzDocOut();

?>

'Web > PHP' 카테고리의 다른 글

킴스보드 최신 게시물 뽑기  (0) 2013.09.26
@set_time_limit(1200);  (0) 2013.09.26
암호화  (0) 2013.09.26
킴스보드 경로  (0) 2013.09.26
다른 도메인간(www.url.com, shop.url.com등) 세션공유  (0) 2013.09.26