Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Parsowanie duzych plikow XML z PHP
Forum PHP.pl > Forum > XML, AJAX > XML
Yaros
Witam!! Poradzcie mi od czego moglym zaczac. Chce zrobic programik ktory bedzie parsowala pliki xml do tablicy w PHPie. Pliki XML bede duzo po kilkadziesiat mega. Mam tylko je odczytac i zapisac do tablicy. Wiem ze jest duzo sposobow. Ale chce zaczac juz pracowac z czyms , czego bede pewien. To znaczy ze nie okaze sie ze dziala dla malych plikow XML, a gdy przyjdzie testowanie na wiekszych to sie wykrzaczy. Uzywam php-a 4.3. Dzieki za wszelka pomoc.


Co na przyklad myslicie o domxml, rozszerzeniu dla php 4.3 questionmark.gif
Solitary
Wydaje mi się, ze rozwiązanie ładowania wszystkiego do pamieci nie jest najlepszym pomysłem. Pomyśl, jesli plik XML ma mieć kilkadziesiąc mega.. to wyobraź sobie ile czasu zajmie to phpowi i ile pamieci zajmie i czy przypadkiem (jesli nie masz wlasnego serwera tylko wykupiony) nie przekroczysz limitu pamieci dla procesów php.

Dodatkowym apektem jest strona www, jezeli to ma byc przez nia wykonywane a nie jako CLI, to takie rozwiazanie odpada calkowicie. Teoretyczne zalozenie, że po przeparsowaniu xmla zajmuje on w pamieci np. 50MB, teraz załóżmy, że weszło 10 użytkowników na strone (a strona wykonuje się np. 10-20 sekund), a więc mamy 500MB zajętej pamięci.

Moim zdaniem, lepiej jeszcze parsować segmentami.
hawk
Jezeli parsowac duze pliki XML, to przez SAX. Przynajmniej nie bedziesz trzymal dokumentu XML w pamieci. Niestety, trzeba trzymac sama tablice php, czyli wymagania pamieciowe i tak beda duze.

No i jak napisal Solitary, calkowicie odpada w przypadku serwisu WWW.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.