关于PHP和gz压缩

时间:2011-12-25 05:22:48

标签: php compression gzip

我在PHP中寻找gz-compression,我找到了这段代码:

<?php
function print_gzipped_output()
{
    $HTTP_ACCEPT_ENCODING = $_SERVER["HTTP_ACCEPT_ENCODING"];
    if( headers_sent() )
        $encoding = false;
    else if( strpos($HTTP_ACCEPT_ENCODING, 'x-gzip') !== false )
        $encoding = 'x-gzip';
    else if( strpos($HTTP_ACCEPT_ENCODING,'gzip') !== false )
        $encoding = 'gzip';
    else
        $encoding = false;

   if( $encoding ) {
        $contents = ob_get_clean();
        $_temp1 = strlen($contents);
        if ($_temp1 < 2048)    // no need to waste resources in compressing very little data
            print($contents);
        else
        {
            header('Content-Encoding: '.$encoding);
            print("\x1f\x8b\x08\x00\x00\x00\x00\x00");
            $contents = gzcompress($contents, 9);
            $contents = substr($contents, 0, $_temp1);
            print($contents);
        }
    }
    else
        ob_end_flush();
}
?>

我的问题很简单:该行

print("\x1f\x8b\x08\x00\x00\x00\x00\x00");

实际上意味着什么?

提前谢谢

1 个答案:

答案 0 :(得分:3)

这是gzip格式文件的标头。您可以查看更多详细信息here

前两个字节将文件标识为gzip。以下8指定使用DEFLATE压缩方法。最后四个零字节用于不需要的字段。