Опять вопрос про чтение CSV. Никто собственную функцию для PHP4 не писал?

SergeR

Новичок
Опять вопрос про чтение CSV. Никто собственную функцию для PHP4 не писал?

Проблема в том, что при чтении больших файлов, скрипт завершается с сообщением об ошибке, что PHP исчерпала отведенный лимит памяти. Увеличивать доступную память могу, но это неконструктивно -- я заранее не знаю, насколько большой файл будет. В екселе есть ограничение на 65535 строк на листе -- в эксель мои файлы не всегда влезают ;-)

Проблема, как я понимаю, в том, что fgetcsv каждый раз резервирует новый кусок памяти.

PHP:
while (($data = fgetcsv($fh,1000,";")) !== FALSE)
{
.....
 .... 
unset($data);
}
не помогает.
 

que_bunt

Новичок
может стоит обрабатывать несколько тысяч строк, запонинать на какой остановились и перезапускать скрипт?
 

SergeR

Новичок
Ага, спасибо за совет. Я тоже об этом подумал.
В цикле проверяю расход памяти, если осталось менее чем X байт :), то перезапускаю скрипт. Заодно можно про таймауты забыть и какой-нибудь pregressbar красивый сделать. ;-)
 
Сверху