2016-12-15 118 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