Php 致命错误:已耗尽1920991232字节的允许内存大小
我用PHP编写了一些代码来读取CSV文件:Php 致命错误:已耗尽1920991232字节的允许内存大小,php,csv,memory-limit,Php,Csv,Memory Limit,我用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字节)
while (!feof($file_handle))
{
$csv=fgetcsv($file_handle, 10024);
if(is_array($csv))
{
$csv=array_slice($csv, 1);
$csvfile[]=$csv;
}
}
当我运行它时,会出现以下错误:
致命错误:已耗尽1920991232字节的允许内存大小(尝试分配
e(10025字节)
我添加了ini_集('memory_limit','10024M')
这行代码的开头,我也增加了php.ini文件中的内存限制
,但它给出了相同的错误
有人能帮忙吗?请注意,要没有内存限制,请将此指令设置为-1。
ini_集('memory_limit','-1')代码>
参考:
然后重新启动apache并重试;) 您完全确定在处理数据之前读取/解析完整文件到数组是必要的吗?除了我不会将整个文件加载到内存中之外,请检查您是否已安装或编译suhosin
,并启用suhosin
,如果是,请检查这是否限制了您的内存。@volkery:我正在逐行读取并将其放入数组中,以便以后可以使用该数组,文件大小为20MB。@t.niese。你能告诉我如何检查suhosin是否安装或没有安装,或者是否符合suhosin的要求吗?例如,检查php信息的输出并在那里搜索suhosin
Hey great catch。我甚至没想过要这么做。不过需要注意的是,代码是用PHP编写的,因此在执行此操作时不需要重新启动Apache。