首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >加载csv文件时出错:内存中巨大的文本节点

加载csv文件时出错:内存中巨大的文本节点
EN

Stack Overflow用户
提问于 2013-04-14 16:19:46
回答 2查看 1.4K关注 0票数 0

在使用.csv加载38 to的PHPExcel文件时,即使将php memory_limit设置为1024M,也会收到huge text node: out of memory错误。

知道如何加载大型.csv文件吗?

误差

Error loading file "data.csv": Warning: DOMDocument::loadHTMLFile(): xmlSAX2Characters: huge text node: out of memory in /var/www/site/data.csv, line: 264094 in /var/www/site/vendor/CodePlex/PHPExcel/PHPExcel/Reader/HTML.php line 458

PHP代码

代码语言:javascript
复制
ini_set('memory_limit', '1024M');

$inputFileName = '/var/www/site/data.csv';
$phpExcel = new PHPExcel;

//  Read your Excel workbook
try 
{
    $inputFileType = PHPExcel_IOFactory::identify($inputFileName); 
    $objReader = PHPExcel_IOFactory::createReader($inputFileType);
    $objPHPExcel = $objReader->load($inputFileName);
} 
catch(Exception $e) 
{
     die('Error loading file "'.pathinfo($inputFileName,PATHINFO_BASENAME).'": '.$e->getMessage());
}

php.ini

代码语言:javascript
复制
; Maximum amount of memory a script may consume (128MB)
; http://php.net/memory-limit
memory_limit = 128M
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-14 16:32:07

您可以使用fgetcsv并逐行加载csv。

代码语言:javascript
复制
$file = '/path/filename.csv';

$f = fopen($file, 'rb');

while( $cols = fgetcsv($f) ) 
{
  // $cols[0]; // first column of the current row
}

fclose($f);
票数 1
EN

Stack Overflow用户

发布于 2013-04-14 16:30:40

用PHPExcel读取大容量Excel文件的可能解决方案

如何用27MB+从大型Excel文件( PHPExcel )读取大型工作表?

其中一个答案是用大块的方式阅读大量文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16001267

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档