Pourquoi PHP gzuncompress() fonction qui peut aller mal?

PHP dispose de sa propre fonction pour travailler avec les archives gzip. J'ai écrit le code suivant:

error_reporting(E_ALL);
$f = file_get_contents('http://spiderbites.nytimes.com/sitemaps/www.nytimes.com/sitemap.xml.gz');
echo $f;
$f = gzuncompress($f);
echo "<hr>";
echo $f;

Première echo normalement sorties le fichier compressé avec le bon en-tête (au moins deux premiers octets sont corrects). Si je devais télécharger ce fichier avec mon navigateur, je peux le décompresser facilement.

Cependant gzuncompress jeté Warning: gzuncompress(): data error in /home/path/to/script.php on line 5

Quelqu'un peut-il m'indiquer la bonne direction pour résoudre ce problème?

EDIT:

La partie de la fonction phpinfo() de sortie

Pourquoi PHP gzuncompress() fonction qui peut aller mal?

Vous pouvez utiliser ob_gzhandler() pour permettre à PHP de faire le travail pour vous à l'aide parce que la fonction gzuncompress() retournera une erreur si les données non compressées est plus que 32768 fois la longueur de la compression de données d'entrée ou de plus que le paramètre facultatif longueur. Ou vous pouvez utiliser le paramètre optionnel pour définir la longueur. Cela devrait être une solution facile.
dans mon cas, la taille du fichier est 4169 (compressé) / 88406 (non compressé) de sorte que le ratio est loin de 32768 (réel ratio est d'environ 21).
avez-vous modifié le php.ini et activé le zip bibliothèques? si vous n'avez pas le faire et de le redémarrer votre serveur web après l'avoir fait pour prendre les modifications que vous avez apportées.
J'ai inclus la fonction phpinfo() capture d'écran pour faire clair sur ce sujet. Comme je peux voir, tout est permis. Droit?
Regardez mario réponse.

OriginalL'auteur Vlada Katlinskaya | 2014-12-29