我想知道为什么在使用gzcompress()后,需要切掉最后四个字符。
这是我的代码:
header("Content-Encoding: gzip");
echo "\x1f\x8b\x08\x00\x00\x00\x00\x00";
$index = $smarty->fetch("design/templates/main.htm") ."\n<!-- Compressed by gzip -->";
$this->content_size = strlen($index);
$this->content_crc = crc32($index);
$index = gzcompress($index, 9);
$index = substr($index, 0, strlen($index) - 4); // Why cut off ??
echo $index;
echo pack('V', $this->content_crc) . pack('V', $this->content_size);
当我不切掉最后4个字符时,源代码会以以下方式结束:
[...]
<!-- Compressed by gzip -->N
当我将它们切断时,读取的内容如下:
[...]
<!-- Compressed by gzip -->
我只在Chrome的代码检查器中看到了额外的N(在Firefox和IE的源代码中没有)。但是似乎在代码末尾有四个额外的字符。
有人能解释一下为什么我需要删掉这四个字符吗?