Estoy usando la función file_get_contents()
de php para hacer una solicitud HTTP. Para ahorrar ancho de banda, decidí agregar el encabezado "Accept-Encoding: gzip"
usando stream_context_create()
.Descomprimir la respuesta http comprimida gzip
Obviamente, file_get_contents()
genera una cadena codificada en gzip, así que estoy usando gzuncompress()
para decodificar la cadena codificada, pero aparece un error con los datos pasados como argumento.
[...] PHP Warning: gzuncompress(): data error in /path/to/phpscript.php on line 26
sé que no es otra función capaz de descomprimir los datos gzipped gzdecode()
pero no está incluido en mi versión de PHP (tal vez sólo está disponible en SVN).
Sé que cUrl decodifica la transmisión gzip sobre la marcha (sin ningún problema) pero alguien me sugirió que usara file_get_contents()
en lugar de cUrl.
¿Conoces alguna otra forma de descomprimir datos comprimidos en PHP o por qué gzuncompress()
genera una advertencia? Es absurdo que gzuncompress()
no funcione como se esperaba.
Notas: El problema es sin duda acerca de PHP: la solicitud de HTTP se realiza a la API de Tumblr que da una respuesta bien codificada.
¿Conoce por qué se sugiere el uso de 'file_get_contents' vez de cUrl? – Jonathan
No, no sé, dijeron "es mejor". Puedo volver a cUrl, pero de todos modos tengo curiosidad por el problema de gzuncompress(). –
¿Es porque los datos también están codificados en base64? –