IMHO.WS

IMHO.WS (http://www.imho.ws/index.php)
-   Для профессионалов (http://www.imho.ws/forumdisplay.php?f=91)
-   -   php4 dom xml(gnome extension) и большие файлы(+) (http://www.imho.ws/showthread.php?t=75983)

Sheryld 18.12.2004 01:03

php4 dom xml(gnome extension) и большие файлы(+)
 
Собственно какая техника работы с большими файлами через DOM XML?

файл на 4-5 МБ, при парсинге кушает очень много ОП, например, на хостинге у меня просто вываливается скрипт, т.к. стоит ограничение на доступную ОП(скрипт запускается через php-cli).

понимаю, что есть SAX, но не люблю его реализауию на php всеми "фибрами души"...

есть ли выход? или это утопия?

RaZEr 18.12.2004 11:06

Цитата:

на хостинге у меня просто вываливается скрипт, т.к. стоит ограничение на доступную ОП
Как ты понимаешь выход здесь только один - увеличить размер допустимой памяти.

Хотя можно поизобретать велосипед... например почему у тебя XML такой большой? Наверно много CDATA/BASE64? Пройди по файлу предварительно заменив такие блоки на что-нибудь вроде <link token="18789782" />, а сами данные сложи в файл/файлы. Потом (RPC/preg_replace) замени обратно.

Sheryld 18.12.2004 14:05

последнее время много работаю с контент провайдерами мобильной мультимедии(java игры, мелодии, картинки т.д.), дамп базы они предоставляют в xml. т.к. xml документ составлен, как Бог на душу положит, то мне приходиться собирать свою свобственную базу каждый раз в ручную.

нет ли в php xml reader-а?(побыстрее), скажем в .NET есть класс XmlReader, который двигается по документу только вперед и предоставляет доступ только на чтение. Мне бы такой подошел идеально.

Видимо, придеться все-таки обратиться к SAX:( Или переписать на другом языке, скажем на С++...

RaZEr 18.12.2004 14:15

Цитата:

нет ли в php xml reader-а?(побыстрее)
Есть SimpleXML. Правда только в php5.

Цитата:

скажем в .NET есть класс XmlReader, который двигается по документу только вперед и предоставляет доступ только на чтение
XML Parser. Для выборки данных, например в массив, его вполне достаточно.

Sheryld 22.12.2004 15:54

переписал все прасеры под simpleXML.

выигрыши:

1. размер кода стал примерно на треть меньше.
2. прекарсно работает с большими файлами.
3. писать парсеры проще и быстрее.

еще раз беждаюсь что php5 рулит:)

теперь перевожу весь код, который работает с xml на 5-ую версию.

RaZEr 22.12.2004 15:59

Цитата:

теперь перевожу весь код, который работает с xml на 5-ую версию
Рулит, если бы не некоторые трудности:
- Не все клиенты хостятся у меня/тебя => не везде стоит php5.
- Проблема защиты кода. Zend Enc./SG не хакнули (лицензия 3000$-5000$), а бесплатная альтернатива Turck MMCache сдохла, да и loader мало где стоит.
- На nix* были замечены отказы php4-приложений, даже со включенной ZE1-совместимостью.

Sheryld 22.12.2004 17:44

я поставил себе php5-cgi(без участия хостера).

защита кода. я работаю в конторе, поэтому код по идее не мой.


Часовой пояс GMT +4, время: 03:41.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.