本文章來給大家介紹關於在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,敬業一點的方法當然就是自己改改代碼,怎麼改這 是個問題,我表示我不敬業,而且都懶得去升級。