![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 6 Pomógł: 0 Dołączył: 7.03.2005 Ostrzeżenie: (0%) ![]() ![]() |
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 ![]() Ten post edytował Yaros 18.03.2005, 08:59:00 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 29 Pomógł: 0 Dołączył: 29.08.2002 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
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. -------------------- Pozdrawiam,
Solitary |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 521 Pomógł: 0 Dołączył: 3.11.2003 Skąd: 3city Ostrzeżenie: (0%) ![]() ![]() |
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. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 20.08.2025 - 09:42 |