2017-01-07 6 views
0

Я пытаюсь получить файл CSV 440mb в массив:PHP - ошибка 500 сервера при обработке (не загрузки) большой файл

$handle = fopen("stuff.csv", "r"); 
$data = array(); 
while (($line = fgetcsv($handle, 1000, ';')) !== FALSE) 
{ 
    $data[] = $line; 
} 

он распадается примерно через 20 секунд, в PHP ини max_execution_time установлен до 50 и memory_limit до 1024. Что может быть проблемой?

ответ

0
  1. Вы указали 1024 M или всего 1024?
  2. Это больше возможно это 1024Mb не достаточно.

Вы можете:

  • ЗАКАНЧИВАТЬ журналы, для этого взгляда на error_log значение в php.ini
  • увеличение памяти в два раза и измерить время исполнения - если она будет слишком увеличиваться, это 100% memory_limit issue

В будущем более эффективно обрабатывать большие файлы в фоновых сценариях. Вы можете использовать для этого Gearman.

+0

Да, я только увеличился до 3000mb, и это сработало. Я не должен был слишком быстро спрашивать: / –

 Смежные вопросы

  • Нет связанных вопросов^_^