Мне интересно, почему мне нужно обрезать последние 4 символа после использования 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 -->
Я мог видеть дополнительный N только в инспекторе Chromes Code (не в Firefox и не в источнике IE). Но в конце кода должно быть четыре дополнительных символа.
Может кто-нибудь объяснить мне, почему я должен отрезать 4 символа?