本文章来给大家介绍关于在window下PHP调用curl报内存不够(curl out of memory)错误的解决办法,有碰到此类问题的朋友可参考。
今天在调用新浪微博api的时候(官网下载的sdk),发现发布图片微博的时候不成功,报错说:
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 4294962523 bytes) in XXXsdksinasaetv2.ex.class.php on line 396
实在想不明白啊,不就上传个图片嘛,至于需要这么大内存吗!?
开始想官网提供的sdk,如果是代码有问题肯定其他开发者也碰到了,于是乎去新浪微博开发平台找答案,怪的很没人说起(不知道是大家都没碰到这问题还是咋的)。没办法,只能请谷歌。
一查还真有点头绪了,大部分出现这个问题的都是因为:用curl请求https,由于在获取证书的时候出问题了,这帖子感觉说的还行:CURLOPT_SSL_VERIFYPEER惹得祸,感兴趣的童鞋可以去看一下。但这个不是我这的原因,不扯远了,继续解决自己的错误。
照上面的帖子行不通,继续找。
但是这个里面的一句话给提醒了我,"出问题的服务器是Windows,工作的是linux。"。这有戏啊,问题可能出在php版本或跟操作系统上,于是把代码那linux上一测试,发现还真的没问题,大喜。
于是加了个关键字"window"重新搜了一遍,还真是这样,php官网果断的出现在了搜索结果里面里面,答案就在这:http://windows.php.net/。
看一下自己php的版本 5.2.5,活该出问题,不勤快点升级。
不多说,不过在写文章的时候又发现了这个(使用微博api发带图片的微博,提示内存不够,这哥们可比我惨多了,估计把所得内存都加上了之后才发现有点不头,哈哈),得来的全不费功夫啊(可惜这时候问题已经被我发现了,只是还没解决)。
解决方法:简单的解决方法就是升级一下php,敬业一点的方法当然就是自己改改代码,怎么改这 是个问题,我表示我不敬业,而且都懒得去升级。