gzdecode(): insufficient memory

时间:5年前   阅读:5117

使用百度统计提供的DataAPI获取站点数据,运行提供的示例代码出现: gzdecode(): insufficient memory 这个问题,导致不能正常登陆。

从字面上理解,产生的原因是调用这个方法时耗费了大量的内存以至于内存不足。在php.ini里把内存加大,重启httpd问题依旧。接着从官网 http://php.net 查看该函数的API,调用方法也正确。不过注意到该方法的第二个参数是可选的,于是尝试去掉第二个参数。果然,去掉第二个参数后问题解决了。

采用的php版本是5.5.14,demo上运行通过的版本是5.2.x,猜测原因是返回字符串有额外字符引起。gdecode第二个参数告诉了需要被解压出来的字符串的长度,使用strlen函数获取到的可能不是压缩前的长度,从而导致了问题的发生。去掉第二个参数采用默认处理方式,估计能更好的将所有的数据解压出来。

示例代码中另外一个warn则是 curl_setopt导致。由于版本不同,CURLOPT_SSL_VERIFYHOST配套的值在新版本的curl库中为2,1已经被弃用。将值更改过来则可以解决这个警告了。

本站声明:网站内容来源于网络,如有侵权,请联系我们https://www.qiquanji.com,我们将及时处理。

微信扫码关注

更新实时通知

上一篇:正确的期权投资中思维是怎样的?

下一篇:EMLOG调用获取指定某个标签名所有文章的方法

网友评论

请先 登录 再评论,若不是会员请先 注册