Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]przetworzenie w php pliku 3,5 GB
Forum PHP.pl > Forum > Przedszkole
dentopolis
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
zegarek84
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...
nospor
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
dentopolis
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ł?
nospor
jak to ma sie do problemu z plikiem 3.5 GB?
kreatiff
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".
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.