(PHP) Подскажите, как распарсить большой файл

Berkut
Дата: 10.07.2006 13:22:08
Большой файл - это файл порядка 1-10 Мб.

Вообще наверное, лучше читать часть файла в переменную-буфер и ее потом парсить, да? Или для этого существуют уже готовые библиотеки?

Поделитесь опытом. :)

Заранее, спасибо.
Oracle
Дата: 10.07.2006 13:51:44
Не совсем ясно что значит распарсить, а именно что из себя представляет файл.
Если это XML то по частям не получится, но уже есть библиотеки, если что то ещ то надо конкретней описать это что то...

O*R*A*C*L*E
(Don't despair my little fried...)
Berkut
Дата: 10.07.2006 15:02:37
Распарсить - значит выделить из структуированного каким-либо образом файла данные и что-то сделать с ними. Например, залить их в бд.

не XML.
*
Дата: 10.07.2006 15:15:09
Парсить блочно.
Oracle
Дата: 10.07.2006 15:28:12
Сразу закачивай весь файл и парься, готового ничего ты не найдешь. Поблочно - не получится.


O*R*A*C*L*E
(Don't despair my little fried...)
Berkut
Дата: 10.07.2006 15:33:18
*
Парсить блочно.

Стандартными средствами для работы с файловой системой?

Oracle
Поблочно - не получится.

Аргументируйте почему? :)

P.S. Если был реальный опыт с большими объемами, тогда и напишите о подводных камнях, приемах и т.п.
maXmo
Дата: 10.07.2006 15:42:29
Berkut
Стандартными средствами для работы с файловой системой?
ну да, когда нет средств специальных, следует использовать средства стандартные.
*
Дата: 10.07.2006 16:22:26
Berkut
Стандартными средствами для работы с файловой системой?
А есть другие предложения?
Oracle
Поблочно - не получится.
Мсье, видимо, обладает незаурядными телепатическими способностями. Ибо не зная структуры данных, которые лежат в файле, и конечной цели парсинга утверждать подобное могут только телепаты, шаманы, и всякие иные магистры чёрной и белой магии.
maXmo
Дата: 10.07.2006 16:45:08
*
утверждать подобное могут только телепаты, шаманы, и всякие иные магистры чёрной и белой магии.
ну. Ты его ник видел?
Oracle
Дата: 10.07.2006 17:19:58
*
Berkut
Стандартными средствами для работы с файловой системой?
А есть другие предложения?
Oracle
Поблочно - не получится.
Мсье, видимо, обладает незаурядными телепатическими способностями. Ибо не зная структуры данных, которые лежат в файле, и конечной цели парсинга утверждать подобное могут только телепаты, шаманы, и всякие иные магистры чёрной и белой магии.


Ребятки вы мои ребятки, причем здесь телепатия, всего лишь обычный опыт.

Теперь расскажу - пусть вы будете пытаться читать это все поблочно, - не зная точной структуры - зачитывая какойто блок вы НЕ МОЖЕТЕ гаранитровать что вы не порвали какое нить значение строки какую либо величину и т.д. Анализировать это - ДАЖЕ не только мне сложно будет, но и модераторам. И PHP тут не причем, это общий подход программирования.

С этим я сталкивался по меншей мере в 2 местах:
1. Когда работал на Каболе - парсил структурированые файлы. Ничего кроме как зачитывать полностью придумано не было.
2. XML парсеры. тут уже сам всевышний скажет вам, что надо все читать.

Увы это жизнь, и не надо ерунды молоить что можно по частям.