![]() |
|
Модераторы: Aliance, skyboy, MoLeX, ksnk |
![]()
|
|
| StealthForce |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 4.9.2007 Репутация: нет Всего: нет |
Помогите в решении проблемы...
Необходимо каждый день парсить очень большой файл на выделенном сервере. Файл не менее 40MB и меняется динамически. Строк в этом фале не менее 300 000. Парсеры загибаются не начав В общем все классы, что находил, очень удобные и интересные, но для малюююсеньких файликов, а это распухшее чудовище не могут проглотить. P.S. Прямая вставка в БД не прокатит, нужен анализ данных файла перед внесением в БД. Это сообщение отредактировал(а) StealthForce - 18.6.2010, 14:10 |
|||
|
||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 12 Всего: 386 |
а чем не подходит функция fgetcsv ?
примерчик из документации вполне может прочитать большой файл, главное чтобы времени хватило ;) -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
| StealthForce |
|
||||
|
Новичок Профиль Группа: Участник Сообщений: 3 Регистрация: 4.9.2007 Репутация: нет Всего: нет |
В таком стандартном подходе выдает:
А именно в такой строке:
Для решения данной проблемы необходимы дополнительные манипуляции и снятие ограничения памяти я не считаю решением. Буду копать в строну fseek. Но я думал помогут реальным советом, а нефлудом |
||||
|
|||||
| ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 12 Всего: 386 |
а вот у меня - именно этот текст никакой дополнительной памяти не жрет. К чему бы это? Исходный csv - 41М. Ограничения на память поставлены даже меньше - 64М memory_limit.
Конечно хром грохнулся, когда попытался принять вывод от локального сервера. объемом примерно в гиг... пришлось повыкинуть лишние эхи, но это уже проблемы броузера ;) Может там какие-то данные куда-то складируются по дороге? Или ob_start собирает какую-то важную информацию в промышленных объемах? -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Тексты | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |