【发布时间】:2014-04-06 03:42:15
【问题描述】:
如何逐行读取 php(csv 文件)中的大文件以避免内存不足? 目前,我有这个:
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 72 bytes)
我几乎可以肯定我的 php 会逐行读取:
$i = 0;
$source = fopen('falkcsvutf.csv', 'r') or die("Problem open file");
while (($data = fgetcsv($source, 0, ";")) !== FALSE && $i < 10)
{
echo $data[1];
$i++;
}
fclose($source);
$i
我感觉 php 的东西在我的 csv 中只有一行,但是,当我以崇高的文本打开文件时,我看到所有的行(带有行号)
该文件是一个Excel文件,保存为CSV,然后用iconv函数转换为utf8。
有什么想法吗?
【问题讨论】:
-
这种情况有时会发生在本地主机上,但不会发生在我们的实时服务器上,我不知道如何在本地主机上修复。
-
这是你的全部代码吗?
-
您使用的是 Mac 吗?如果是这样,请注意PHP docs 中的
auto_detect_line_endings注释 -
这是在实时 (linux) 服务器上,但文件是在 mac 上生成的
-
@VincentDuprez 试试
ini_set("auto_detect_line_endings", true);