2016-12-15 116 views
0

我試圖用phpexcel讀寫器讀取大小980mb的CSV文件,但我的代碼正在讀取較小的文件(高達4MB)來讀取非常大的CSV文件,但如何通過閱讀更大CSV或Excel文件phpexcel閱讀器?? [我是一個更新鮮的php和phpexcel函數]。請幫助我這可能嗎?提前致謝。如何使用phpexcel讀者

+0

[如何讀取從大型Excel文件大型工作與PHPExcel(http://stackoverflow.com/questions/4666746/how-to-read-large-worksheets-from-large-excel-files-27mb-with -phpexcel) –

+0

[PHPExcel用完的RAM(http://stackoverflow.com/questions/4817651/phpexcel-runs-out-of-256-512-and-also-1024mb-of-ram) –

+0

如果所有你正在做的是讀一個CSV文件,然後PHP的內置[fgetcsv()](http://www.php.net/manual/en/function.fgetcsv.php)功能是更有效 –

回答

1

如果您不關心需要多長時間以及需要多少內存,則可以簡單地增加此腳本的值。只需以下行添加到您的腳本的頂部:

ini_set('memory_limit', '1024M'); 
ini_set('max_execution_time', '300'); 

隨着memory_get_usage()你可以找到你的腳本需要多少內存找到memory_limit的一個很好的價值功能。

您可能還想看看fgets(),它允許您逐行讀取文件。我不確定這是否會減少記憶,但我真的認爲這會奏效。但即使在這種情況下,您也必須將max_execution_time增加到更高的值。 您可以根據需要增加鍛鍊時間。

+0

感謝您回覆。我正在使用codeigniter,我將這些行包含在我的控制器中?但仍然有這個錯誤 - 'outofmemory'嘗試在phpexcelreader中分配更多的內存空間? – Priya