[PHP]przetworzenie w php pliku 3,5 GB |
[PHP]przetworzenie w php pliku 3,5 GB |
20.09.2016, 10:55:19
Post
#1
|
|
Grupa: Zarejestrowani Postów: 252 Pomógł: 0 Dołączył: 14.08.2016 Ostrzeżenie: (0%) |
mam plik xml tworzący csv. obecnie mam do przetworzenia plik o wielkości 3,5gb. oczywiście samo otwarcie tego pliku blokuje komputer.czy istnieje możliwość aby plik php go przetworzył stopniowo żeby nie zawieszać komputera? oczywiście myślę o localhost (xampp).
źródło skryptu:http://dentopolis.org/scr/pubfeed/skrypt.txt Ten post edytował dentopolis 20.09.2016, 10:58:22 |
|
|
20.09.2016, 11:00:43
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 332 Pomógł: 294 Dołączył: 12.10.2008 Skąd: Olkusz Ostrzeżenie: (0%) |
XML Parser
a w google "SAX PHP" edit oczywiście będziesz musiał się przestawić na "programowanie zdarzeniowe" lub podpiąć w jednej funkcji wieeeeleee if'ów... Ten post edytował zegarek84 20.09.2016, 11:04:09 -------------------- Jeśli twoja ręka rusza do przodu powstrzymaj swój gniew; gdy wyprzedza cię twój gniew - wycofaj rękę.
|
|
|
20.09.2016, 11:03:05
Post
#3
|
|
Grupa: Moderatorzy Postów: 36 468 Pomógł: 6300 Dołączył: 27.12.2004 |
Do tak duzych plikow nie mozesz uzywac funkcji ala simplexml_load_file() gdyz one laduja caly plik.
Musisz uzywac narzedzi ktore czytaja plik tag po tagu np. http://php.net/manual/en/book.xmlreader.php -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
20.09.2016, 20:07:07
Post
#4
|
|
Grupa: Zarejestrowani Postów: 252 Pomógł: 0 Dołączył: 14.08.2016 Ostrzeżenie: (0%) |
no dobrze. wiem że to nie forum regex ale czy ktoś orientuje się jak powinna wyglądać składnia regex która wartości spomiędzy tagów <Title>...</Title> oraz <Author>...</Author> i wypisze w postaci autor - tytuł?
|
|
|
20.09.2016, 21:20:22
Post
#5
|
|
Grupa: Moderatorzy Postów: 36 468 Pomógł: 6300 Dołączył: 27.12.2004 |
jak to ma sie do problemu z plikiem 3.5 GB?
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
21.09.2016, 17:02:35
Post
#6
|
|
Grupa: Zarejestrowani Postów: 324 Pomógł: 105 Dołączył: 7.08.2012 Ostrzeżenie: (0%) |
Wspomnianym xmlreader bez problemu wyciągniesz dane z tych tagów. Bez ładowania całego pliku do pamięci. Po prostu w pętli lecącej po wszystkich węzłach sprawdzasz czy ten bieżący to title albo author i jeśli tak, pobierasz wartość. A gdy nie to przechodzisz do kolejnego. Szybko i efektywnie.
Z wyrażeniami regularnymi musisz dodatkowo rozwiązać jakoś ładowanie pliku do pamięci. Czyli wracasz do punktu wyjścia. xmlreader ten problem rozwiąże "z definicji". |
|
|
Wersja Lo-Fi | Aktualny czas: 18.05.2024 - 08:14 |