Hallo allerseits,
habe da ein Problem mit einem Parsingskript, das XML Dateien auslesen soll und externe Bilder kleinrechnen soll. Jetzt ist das ganze so programmiert, dass bei riesigen XML Dateien das Skript nach 50 Datensätzen sich neu lädt, in einer foreach Schleife dann wieder den Anschluss in der XML Datei sucht und weiter macht usw. . Dabei werden die Daten immer in die DB geschrieben und zugehörige Bilder kleingerechnet.
Das Problem:
Das Skript hat ein riesen XML-Skript zu bewältigen mit 800 Datensätzen samt bildern, er lädt alle 50 Datensätze neu und sucht den Anschluss. Zu große Bilder werden übergangen. Ziemlich genau bei der Hälfte bleibt er hängen und zeigt:
Fatal error: Allowed memory size of 12582912 bytes exhausted (tried to allocate 5168 bytes)
Habe aber einen Server mit 1024 MB Arbeitsspeicher!
Noch dazu wird das Skript alle 50 Datensätze neu geladen.
Es kann auch keinen Laufzeiterror geben (der ist auf 10Min. eingestellt).
Die Frage:
Woran kann das liegen? Scheinbar überlastet ihn die foreach schleife, die eventuell einige hundert male durchlaufen wird, bis der Anschlussdatensatz gefunden wird:
foreach($xml2->anbieter->immobilie as $immo){
$datei_zaehler = $datei_zaehler +1 ;
if(!$datensatz_zaehler){ $datensatz_zaehler = 1; }
if($durchgang_zaehler == 51){
echo "<script language ='JavaScript'>location.href='parsing_neuladen.php5?datensatz_zaehler=$datensatz_zaehler';</script>"; }else{}
}
Kann so eine Schleife zu diesem Abbruch führen? Was kann ich tun, um rauszufinden, warum das abbricht?
Danke für jede Hilfe,
Michael
habe da ein Problem mit einem Parsingskript, das XML Dateien auslesen soll und externe Bilder kleinrechnen soll. Jetzt ist das ganze so programmiert, dass bei riesigen XML Dateien das Skript nach 50 Datensätzen sich neu lädt, in einer foreach Schleife dann wieder den Anschluss in der XML Datei sucht und weiter macht usw. . Dabei werden die Daten immer in die DB geschrieben und zugehörige Bilder kleingerechnet.
Das Problem:
Das Skript hat ein riesen XML-Skript zu bewältigen mit 800 Datensätzen samt bildern, er lädt alle 50 Datensätze neu und sucht den Anschluss. Zu große Bilder werden übergangen. Ziemlich genau bei der Hälfte bleibt er hängen und zeigt:
Fatal error: Allowed memory size of 12582912 bytes exhausted (tried to allocate 5168 bytes)
Habe aber einen Server mit 1024 MB Arbeitsspeicher!
Noch dazu wird das Skript alle 50 Datensätze neu geladen.
Es kann auch keinen Laufzeiterror geben (der ist auf 10Min. eingestellt).
Die Frage:
Woran kann das liegen? Scheinbar überlastet ihn die foreach schleife, die eventuell einige hundert male durchlaufen wird, bis der Anschlussdatensatz gefunden wird:
foreach($xml2->anbieter->immobilie as $immo){
$datei_zaehler = $datei_zaehler +1 ;
if(!$datensatz_zaehler){ $datensatz_zaehler = 1; }
if($durchgang_zaehler == 51){
echo "<script language ='JavaScript'>location.href='parsing_neuladen.php5?datensatz_zaehler=$datensatz_zaehler';</script>"; }else{}
}
Kann so eine Schleife zu diesem Abbruch führen? Was kann ich tun, um rauszufinden, warum das abbricht?
Danke für jede Hilfe,
Michael
Kommentar