05
2019
06

gzdecode(): insufficient memory

使用百度统计提供的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/post/4765.html

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

微信扫码关注

更新实时通知

« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。