Web/PHP
웹상에 gzip 처리하기
aucd29
2013. 9. 26. 21:48
<?
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();
?>
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();
?>