@Rick_77
Нормальный пацан

Денвер сообщает о нехватке памяти?

Записываю содержимое файла csv в массив. Код:
<?php
$res = array();
if (($file = fopen('data44.csv', 'r')) !== false) {
  while (($data = fgetcsv($file, 15, ";")) !== false) {
    $res [] = $data;
  }
  fclose($file);
  }
var_dump($res);
print_r('Завершено!');
?>

В браузере получаю сообщение:
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 32 bytes) in indexOut.php on line 4
Файл csv с размером строк 200 тыс.

Винда 10 64 бита. Памяти 8 Гиг.
  • Вопрос задан
  • 200 просмотров
Пригласить эксперта
Ответы на вопрос 1
mayton2019
@mayton2019
Bigdata Engineer
По поводу data44.csv и прочего.

Обычно разработчики не прогружают файлы целиком в memory. Это опасно.
Файл имеет право во много раз превышать оперативу по размеру. И даже если
тебе кажется что файл (влезет) на глазок, то будучи сериализованным в PHP
array он может иметь накладные расходы.

Для альтернативы var_dump попробуй распечатать его по строкам

while (($data = fgetcsv($file, 15, ";")) !== false) {
    print($data);
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы