Jörg Reinholz: PHP Curl memory Fehler

Beitrag lesen

Moin!

Hallo Jörg,

Ja-Nee, war klar. Jetzt werden natürlich die Glaubenskriege über [+][-] ausgefochten.

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:

http://professionelle-softwareentwicklung-mit-php5.de/programming-php.xml.sax.html

 public function readCatalog($catalog) {
    xml_parse(
      $this->parser,
      file_get_contents($catalog), # hier käme es zur Verletzung der Speicherbegrenzungs-Regel
      TRUE
    );
  }

Deshalb hat man sie ja erfunden: weil damit eben nicht das ganze Dokument im Speicher gehalten werden muss. Dafür ist die API komplizierter.

Wie gefragt: Wie übergebe ich einen Stream, Chunks, Zeilen - aber nicht das gesamte XML-Dokument?

Jörg Reinholz