Je me demande pourquoi je dois couper les 4 derniers caractères, après avoir utilisé gzcompress().Comment fonctionne gzcompress?
Voici mon code:
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);
Quand je ne suis pas coupé des 4 derniers caractères, la source se termine comme:
[...]
<!-- Compressed by gzip -->N
Quand je les ai coupé il lit:
[...]
<!-- Compressed by gzip -->
Je ne pouvais voir le N supplémentaire que dans l'inspecteur de code de Chromes (pas dans Firefox et pas dans la source IE). Mais il semble y avoir quatre caractères supplémentaires à la fin du code.
Quelqu'un peut-il m'expliquer, pourquoi j'ai besoin de couper 4 caractères?
Pourquoi la dernière ligne? Ne fait pas écho que corrompre le flux compressé? – Artefacto