2012-11-07 138 views
0

我正在使用simplexlsx類讀取38879行數據(在1張紙上),並且出現內存問題(內存不足)。我的服務器的內存大小是48 GIGS,我在9000MB上設置了memory_limit(php.ini),但問題仍然存在!你能告訴我我應該做什麼嗎?simplexlsx內存不足

+0

錯誤說:致命錯誤:內存不足(分配83099648)(試圖分配34791104字節)在C:\ xampp \ htdocs \ class \ xlsx.php在線359 –

+0

您是否在更改內存限制後重新啓動服務器? –

+0

當然,不是服務器,而是php/apache服務 –

回答

0

顛覆極限並不是一種處理在數千行數據中運行的東西的方法 - 除非有特定的原因。這是由於代碼中可怕的內存浪費,你的情況的一個可能的故事是腳本正在創建一個巨大的行數組(或對象)。我不建議改變內存限制,而是建議更改代碼以使內存更加高效。

我從來沒有聽說過SimpleXLSX,但我使用過PHPExcel,我從來沒有遇到過問題。如果您使用PHPExcel進行重新修改沒有太多工作,我會建議使用它。

https://github.com/PHPOffice/PHPExcel

+0

我使用的是PHPExcel,因爲PHPExcel也有相同的問題,我嘗試了緩存方法,但它沒有任何效果,仍然內存不足。你能解釋一下嗎? –

+0

你可以發佈從電子表格收集數據的代碼嗎? – 27A

+0

當然,這個:http://pastebin.com/Zgiue2Hh –

0

SimpleXLSX和PHPExcel是在很多東西確實不錯,但正處於讀書大型電子表格既可怕的(你可以不擅長的一切!)。

我遇到了同樣的問題,即使使用PHPExcel的優化(緩存,讀取數據塊,...),它也沒有解決。內存不足錯誤得到解決,但是讀取一個甚至沒有大文件的文件卻一直持續。

所以我最終創建了一個庫來解決這個規模問題。嘗試一下,讓我知道如果有幫助:https://github.com/box/spout