André: Problem mit xml_parse_into_struct

Beitrag lesen

Hallo zusammen,

ich möchte in einem Script XML-Dateien parsen.
Hierzu lade ich die Datei in eine Variable und lasse diese dann per Problem mit xml_parse_into_struct() in zwei Arrays parsen.

Auf meinem lokalen PC funzt das auch super.

Aber auf dem Server, bei dem es laufen soll, bricht der Parser ab einer bestimmten Dateigröße ab (zwischen 400 und 700KB).
Die Dateien sind übrigens .GPX Dateien, enthalten also eine recht einfache XML-Struktur (GPS-Austauschformat).

Hier mal das Script:

$gpxdatei = fopen ('dateiname.gpx', 'r') or die('Konnte GPX-Datei nicht öffnen');
while (!feof($gpxdatei)) {
  $buffer .= fgets($gpxdatei, 4096);
}
fclose ($gpxdatei);
$p = xml_parser_create();
xml_parser_set_option($p,XML_OPTION_SKIP_WHITE,1);

echo "parse XML-Datei:\n";
xml_parse_into_struct($p, $buffer, $vals, $index);

echo "Werte: ".count($vals).", Index: ".count($index);

Das komische ist, dass ich keine Fehlermeldung erhalte. Wenn die Datei zu groß ist (> ca. 400 KB), dann bricht das Script wortlos ab. Das heisst, das echo vor dem xml_parse_into_strukt wird noch ausgegeben und dann ist Schluß.

Am Script-Timeout kann es auch nicht liegen, denn der Abbruch erfolgt bereits nach ca. 2 - 5 Sekunden (Timeout 120 s).

Kennt jemand dieses Prolem? Und gibts vielleicht eine andere Lösung, um die XML-Daten zu parsen?

Gruß, André