16 Stimmen

Dekomprimieren der gzip-komprimierten http-Antwort

Ich benutze php's file_get_contents() Funktion, um eine HTTP-Anfrage durchzuführen. Um Bandbreite zu sparen, habe ich beschlossen, die "Accept-Encoding: gzip" Kopfzeile mit stream_context_create() .

Offensichtlich, file_get_contents() eine gzip-kodierte Zeichenkette ausgibt, verwende ich gzuncompress() um die kodierte Zeichenfolge zu dekodieren, aber ich erhalte einen Fehler mit Daten als Argument übergeben.

[...] PHP Warning: gzuncompress(): data error in /path/to/phpscript.php on line 26

Ich weiß, dass es eine andere Funktion gibt, die gzipped Daten dekomprimieren kann gzdecode() aber es ist nicht in meiner PHP-Version enthalten (vielleicht ist es nur im SVN verfügbar).

Ich weiß, daß cUrl den gzip-Stream on the fly dekodiert (ohne jedes Problem), aber jemand hat mir vorgeschlagen, den file_get_contents() anstelle von cUrl.

Kennen Sie einen anderen Weg, um gzipped Daten in PHP zu dekomprimieren oder warum gzuncompress() Ausgänge eine Warnung? Es ist absurd, dass gzuncompress() funktioniert nicht wie erwartet.

Anmerkungen: Das Problem ist sicherlich über PHP: die HTTP-Anfrage an Tumblr API, die eine gut verschlüsselte Antwort geben gemacht.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X