![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 23.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Realizuję obecnie skrypt pobierania ofert pracy z pewnego dużego portalu za pomocą kanału atom. Problem w tym ze plik z ofertami udostepniony przez administratora jest spakowany do formatu bz2 i po rozpakowaniu zajmuje okolo 56 MB. podczas próby czytania tego pliku za pomocą klasy DOMDocument serwer wywala bład 500. Na localhoscie dlugo mieli (około 5 min) ale przeczyta cały plik. Tutaj pytanie: czy znacie może jakies metody na to by otwierać tak duże pliki? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 80 Pomógł: 17 Dołączył: 4.09.2010 Skąd: far far away Ostrzeżenie: (0%) ![]() ![]() |
Nie To nawet nie wiedziałem, będę pamiętał na przyszłość, ogólnie ja robiłem swoje dziadostwo jak jeszcze XmlReader nie był w standardzie, to była jakaś z pierwszych stabilnych wersji php 5. XmlReadera znam z C# głównie, gdzie do pary z writerem, bardzo lubię używać, widzę, że klasa php'owa jest podobna. Wielkie podziekowania za odpowiedzi (IMG:style_emoticons/default/smile.gif) w moim przypadku xmlReader się nie sprawdzał (nie wiem dlaczego ale czytał tylko początek pliku). Najtrafniejszą metodą okazało się pocięcie dużego pliku xml na szereg mniejszych za pomocą funkcji fopen, fgets, fwrite i potem wydobywanie danych z pociętych plików przy pomocy klasy DOMDocument. Nie do końca mi o to chodziło, zrobiłem błąd, że tam wcisnąłem fwrite w przykładzie. Nie dzieliłem pliku na mniejsze, bo to jest mało optymalne, czytałem go linia po linii pamiętając ścieżkę xpath i w zależności od zawartości wykonywałem odpowiednie działania, sama klasa po kilku zmianach nadawałaby się nawet do uniwersalnego zastosowania. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 4.10.2025 - 23:08 |