![]() |
![]() ![]() |
![]() |
![]()
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: 782 Pomógł: 153 Dołączył: 21.07.2010 Ostrzeżenie: (0%) ![]() ![]() |
Poszukaj. Nie jesteś wyjątkiem.
|
|
|
![]()
Post
#3
|
|
Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
XMLReader
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 80 Pomógł: 17 Dołączył: 4.09.2010 Skąd: far far away Ostrzeżenie: (0%) ![]() ![]() |
XMLReader nie będzie przypadkiem próbował wczytać pliku w całości naraz ? Kiedyś jak miałem podobny problem, z tym że xml był większy prawie 4 razy to skończyło się na napisaniu własnego parsera fopen, fwrite ...., bo każde gotowe w momencie wczytania pliku wypluwało error o za małej ilości pamięci.
|
|
|
![]()
Post
#5
|
|
Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
Nie
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 23.03.2010 Ostrzeżenie: (0%) ![]() ![]() |
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.
|
|
|
![]()
Post
#7
|
|
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. |
|
|
![]()
Post
#8
|
|
Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
No to pokaż jak używałeś xmlreadera oraz przykładową strukturę xml.
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 10 Pomógł: 1 Dołączył: 4.01.2011 Ostrzeżenie: (0%) ![]() ![]() |
Podepnę się pod pytanie - mam backup bazy mysql w pliku xml (skrypt wordpress) i nie mogę go wczytać, bo jest za duży. Da się to jakoś wczytać w częściach jeżeli go podzielę, czy nie bardzo? On ma tylko kilka mega i wydaje mi się, że to problem z ograniczeniami hostingu.
-------------------- Pozdrawiam (IMG:style_emoticons/default/snitch.gif) |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 12:43 |