Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> PHP не может обработать xml большого размера. 
:(
    Опции темы
FlakeMusic
Дата 7.3.2009, 23:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 91
Регистрация: 18.3.2008

Репутация: нет
Всего: 1



выполняю код
Код

$xmlDoc = new DOMDocument();
$xmlDoc->load("http://site.ru/xml/test.xml");


test.xml весит где-то 125Мб. Так вот при выполнении выдаётся ошибка "php in free(): error: modified (chunk-) pointer" и образуется файл php.core
Памяти выделено 128М. Не могу понять почему такое происходит.
PM MAIL   Вверх
IZ@TOP
Дата 26.3.2009, 23:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 2
Всего: 73



Цитата(FlakeMusic @  8.3.2009,  00:41 Найти цитируемый пост)
test.xml весит где-то 125Мб. Так вот при выполнении выдаётся ошибка "php in free(): error: modified (chunk-) pointer" и образуется файл php.core
Памяти выделено 128М. Не могу понять почему такое происходит. 

Во первых, файло такого размера не рекомендуется ни для DOM'а ни для SimpleXML, ибо оба они раскладывают его в памяти, что несомненно займет не столько, сколько весит сам файл, а несколько больше. И не факт что отработает. Для начала скачайте файл на сервер во временную директорию, затем читайте при помощи XMLReader'a.


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
solenko
Дата 27.3.2009, 07:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1473
Регистрация: 15.1.2006
Где: Украина

Репутация: нет
Всего: 67



IZ@TOP, а можно подробнее про XMLReader? Он нмного экономичнее DOMXml?

FlakeMusic, 128М, как уже говорили выше, не хватит в любом случае т.к. нужна память на сам файл + результаты его разбора что будет в любом случае больше чем сам файл. И с использованием XMLReader эта ситуация не изменится.


--------------------
Ла-ла-ла-ла
Заметьте, нет официального подтверждения, что это не просто четыре слога.
PM MAIL WWW ICQ Skype   Вверх
IZ@TOP
Дата 27.3.2009, 13:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 2
Всего: 73



Цитата(solenko @  27.3.2009,  08:45 Найти цитируемый пост)
IZ@TOP, а можно подробнее про XMLReader? Он нмного экономичнее DOMXml?

Я вроде ссылку привел.

Цитата(solenko @  27.3.2009,  08:45 Найти цитируемый пост)
И с использованием XMLReader эта ситуация не изменится. 

Боюсь, Вы ошибаетесь.
Цитата

The XMLReader extension is an XML Pull parser. The reader acts as a cursor going forward on the document stream and stopping at each node on the way. 

Т.е. в принципе, ему все равно, какой размер у XML файла. Он открывает стрим, читает в буфер пока не встретит ноду, после чего ждет инструкций и только после выполняет дальнейший проход.


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
solenko
Дата 27.3.2009, 15:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1473
Регистрация: 15.1.2006
Где: Украина

Репутация: нет
Всего: 67



Цитата(IZ@TOP @  27.3.2009,  12:11 Найти цитируемый пост)
Боюсь, Вы ошибаетесь.
Цитата

The XMLReader extension is an XML Pull parser. The reader acts as a cursor going forward on the document stream and stopping at each node on the way. 

Т.е. в принципе, ему все равно, какой размер у XML файла. Он открывает стрим, читает в буфер пока не встретит ноду, после чего ждет инструкций и только после выполняет дальнейший проход. 

Спасибо. Я эту фразу в мануале не понял.


--------------------
Ла-ла-ла-ла
Заметьте, нет официального подтверждения, что это не просто четыре слога.
PM MAIL WWW ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: X технологии | Следующая тема »


 




[ Время генерации скрипта: 0.0437 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.