【发布时间】:2014-01-13 10:09:34
【问题描述】:
我用 PHP 编写了一些代码来读取 CSV 文件:
while (!feof($file_handle))
{
$csv=fgetcsv($file_handle, 10024);
if(is_array($csv))
{
$csv=array_slice($csv, 1);
$csvfile[]=$csv;
}
}
当我运行它时,我得到了这个错误:
致命错误:允许的内存大小为 1920991232 字节已用尽(试图分配 e 10025 字节)
我在代码的开头添加了ini_set('memory_limit', '10024M');,我也在php.ini文件中增加了memory_limit,但它给出了同样的错误。
有人可以帮忙吗?
【问题讨论】:
-
您绝对确定需要在处理数据之前将完整的文件读取/解析为数组?
-
除非我不会将整个文件加载到内存中,请检查您是否安装或编译了
suhosin并启用了suhosin,如果是,请检查这是否限制了您的内存。 -
@volkery:我正在逐行读取并将其放入数组中,以便以后可以使用该数组,文件大小为 20MB。
-
@t.niese。你能告诉我如何检查是否安装了 suhosin 或没有安装或遵守 suhosin 吗?
-
例如检查 php info 的输出并在那里搜索
suhosin
标签: php csv memory-limit