gpt4 book ai didi

php - 解压缩 gzip 压缩的 http 响应

转载 作者:IT王子 更新时间:2023-10-29 00:20:01 27 4
gpt4 key购买 nike

我正在使用 php 的 file_get_contents() 函数来执行 HTTP 请求。为了节省带宽,我决定使用 stream_context_create() 添加 "Accept-Encoding: gzip" header 。

显然,file_get_contents() 输出一个 gzip 编码的字符串,所以我使用 gzuncompress() 来解码编码的字符串,但我收到一个错误,数据作为参数传递.

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

我知道还有另一个函数可以解压缩 gzip 数据 gzdecode() 但它没有包含在我的 PHP 版本中(也许它只在 SVN 上可用)。

我知道 cUrl 可以即时解码 gzip 流(没有任何问题),但有人建议我使用 file_get_contents() 而不是 cUrl。

您是否知道在 PHP 中解压缩 gzip 数据的任何其他方法,或者为什么 gzuncompress() 输出警告? gzuncompress() 没有按预期工作是荒谬的。

注意事项:问题肯定是关于 PHP 的:HTTP 请求是对 Tumblr API 发出的,它给出了编码良好的响应。

最佳答案

发现这对我有用:http://www.php.net/manual/en/function.gzdecode.php#106397

可选择尝试:http://digitalpbk.com/php/file_get_contents-garbled-gzip-encoding-website-scraping

if ( ! function_exists('gzdecode'))
{
/**
* Decode gz coded data
*
* http://php.net/manual/en/function.gzdecode.php
*
* Alternative: http://digitalpbk.com/php/file_get_contents-garbled-gzip-encoding-website-scraping
*
* @param string $data gzencoded data
* @return string inflated data
*/
function gzdecode($data)
{
// strip header and footer and inflate

return gzinflate(substr($data, 10, -8));
}
}

关于php - 解压缩 gzip 压缩的 http 响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8895852/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com