omg Мне не хватает 7 представителей, чтобы комментировать.Это комментарий @ Raptor & @ Tomm, так как этот вопрос все еще обнаруживается в Google Serps.
Он совершенно прав.Для небольших файлов file($file);
отлично подойдет.Для больших файлов это полное излишнее количество. B / c php массивы поглощают память как сумасшедшие.
Я только что провел крошечный тест с * .csv с размером файла ~ 67 МБ (1 000 000 строк):
$t = -microtime(1);
$file = '../data/1000k.csv';
$lines = file($file);
echo $lines[999999]
."\n".(memory_get_peak_usage(1)/1024/1024)
."\n".($t+microtime(1));
//227.5
//0.22701287269592
//Process finished with exit code 0
И так как никто еще не упомянул об этом, я дал SplFileObject
попытку, которую я на самом деле только недавно обнаружил для себя.
$t = -microtime(1);
$file = '../data/1000k.csv';
$spl = new SplFileObject($file);
$spl->seek(999999);
echo $spl->current()
."\n".(memory_get_peak_usage(1)/1024/1024)
."\n".($t+microtime(1));
//0.5
//0.11500692367554
//Process finished with exit code 0
Это было на моем рабочем столе Win7, поэтому он не является репрезентативным для производстваокружающей среды, но все же ... большая разница.