Christian Kruse: PHP Curl memory Fehler

Beitrag lesen

Hallo Jörg,

Sachlich ist die Aussage nämlich nicht zu widerlegen.

Falsch. SAX-Parser arbeiten schon seit Ewigkeiten in Chunks.

Mag sein. Aber wie realisiere ich das in PHP? Ich finde nur Beispiele, bei denen die Daten zunächst komplett gelesen werden - womit wir ja wieder beim Ausgangsproblem landen. Also sowas wie das hier:

Pseudo-Code (also, schon PHP, aber so wird es nicht funktionieren; es zeigt nur das Schema):

$parser = xml_parser_create();
xml_set_element_handler($parser, 'myStartHandler', 'myEndHandler');
xml_set_character_data_handler($parser, 'myCharHandler'); 

$fd = fopen('file', 'r');

while(($data = fread($fp, 512))) {
  if(!xml_parse($parser, $data, feof($fd))) { 
    echo "Error in document";
  }
}

Das würde ein Dokument in 512-Byte-Blöcken lesen und parsen. Die Handler musst du dir selber bauen.

LG,
CK

Edit: Huch, der Parse-Prototyp war da falsch, den hatte ich mir nur dahin kopiert um ihn nicht im Kopf haben zu müssen