2014-02-12 80 views
-1

我正在使用PHPExcel庫來讀取和寫入excel文件的excel2007格式。這些都不是大的Excel文件,大約只有120rows和20co​​lumns。當我在我的專用服務器上運行其示值誤差如下..致命錯誤:允許的內存大小33554432字節窮盡PHPExcel

Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 40 bytes) in /home/ramdas/public_html/partnumber/inc/PHPExcel/Style/Supervisor.php on line 126 

這裏是我的代碼..我使用內存cacheing技術..

include("inc/PHPExcel.php"); 
    $cacheMethod = PHPExcel_CachedObjectStorageFactory::cache_to_phpTemp; 
    $cacheSettings = array('memoryCacheSize' => '512MB'); 
    PHPExcel_Settings::setCacheStorageMethod($cacheMethod,$cacheSettings); 
    $objPHPExcel = new PHPExcel(); 

我已經檢查PHPExcel_Settings的返回值..其真正的回報..

請幫我解決這個問題。我已經嘗試了所有可以在這裏找到答案...什麼都沒有幫我解決..

+1

你嘗試什麼ansers,什麼然後發生了什麼? – Nanne

+0

http://stackoverflow.com/questions/20784606/php-csv-export-more-than-20000-records/20784734#20784734 –

+0

也試過這一個...... 33554432字節允許的內存大小用盡(試圖分配43148176字節)在PHP .. 獲取相同的錯誤 – Girish

回答

2
$cacheSettings = array('memoryCacheSize' => '512MB'); 

這是告訴PHP使用內存高達512MB 之前,它甚至會啓動細胞數據緩存到PHP://臨時

你不必512MB的內存,你只有32MB(33554432字節)

PHPExcel不會自動創建以太網內存,它受限於可用的物理內存。

您需要使用memoryCacheSize較小的值比你的可用內存,8MB也許,甚至更低

$cacheSettings = array('memoryCacheSize' => '8MB'); 
+0

我試過這一個..但同樣的錯誤...我怎麼能解決這個問題? – Girish

+0

您可以嘗試使用其他一些緩存選項;或者顯示更多的代碼,以便我們可以看到自己的代碼使用了多少內存(例如,您是否使用大型數組?) –

相關問題