Probleme mit XML-Datei nach fsockopen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Probleme mit XML-Datei nach fsockopen

    Hi!

    Ich lese mit folgendem Script eine XML-Datei aus:
    PHP-Code:
    <?php
    $file
    ="t=xxx&dev-t=xxx&BrowseNodeSearch=284266&mode=dvd-de&type=lite&page=1&locale=de&sort=+salesrank&f=xml";
    $data="";
    $fp fsockopen ("xml.amazon.com"80$errno$errstr30);
    if (!
    $fp) {
        echo 
    "$errstr ($errno)<br/>\n";
        die();
    }
    else {
        
    fputs($fp"POST /onca/xml3 HTTP/1.1\r\n");
        
    fputs($fp"Host: [url]http://host.de\r\n[/url]");
        
    fputs($fp"Content-type: application/x-www-form-urlencoded\r\n");
        
    fputs($fp"Content-length: "strlen($file) ."\r\n");
        
    fputs($fp"Connection: close\r\n\r\n");
        
    fputs($fp$file);
    }
    while (!
    feof($fp)){
        
    $data.= fgets($fp128);
    }
    fclose($fp);
    echo 
    "<pre>".str_replace(">","&gt;",str_replace("<","&lt;",$data))."</pre><br>";
    ?>
    Leider habe ich in dem Resutlset (sollte ja in $data landen), teilweise wirre Zeichen und Umrüche drin...

    Das sieht dann z.B. so aus:
    <ImageUrlMedium>http://images-eu.amazon.com/images/P...3.MZZZZZZZ.jpg</ImageUrlMedium>
    <ImageUrlLarge>http://images-eu.amazon.com/images/P...3.LZZZZZZZ.jpg</Ima
    9a
    geUrlLarge>
    <ListPrice>EUR 0,00</ListPrice>

    Woran liegt das?
    Was kann ich dagegen tun?
    Gibt es eine Funktion in PHP, die mir nur das Set als solches aus $data ausliest (also Header und alles drumherum entfernt)?

    Ich bin ich verzweifelt, da ich im meinem Skript keinen Fehler finde, der als Ursache für diese wirren Zeichen (im Beispiel das "9a") herhalten könnte

    Leider ist das XML-Dokument daher auch nicht valide und jeder Parseversuch scheitert natürlich.

    Gruß,
    Gerti

  • #2
    hm da ich mich in xml nicht so hundertprozentig auskenn nur mal n paar hinweise zu einer möglichen Ursache ausm Manual:
    fgets:
    Anmerkung: Der Parameter length wurde in PHP 4.2.0 optional. Ist er nicht angegeben, wird als Zeilenlänge 1024 angenommen. Seit PHP 4.3 wird bei einem fehlenden Parameter length so lange gelesen, bis das Ende der Zeile erreicht ist. Ist der Großteil der Zeilen in der Datei größer als 8 kB, ist es effizienter, wenn Sie die maximale Zeilenlänge spezifizieren.

    Anmerkung: Diese Funktion ist seit PHP 4.3 "binary safe", was aus frühere Versionen nicht zutrifft.

    Anmerkung: Wenn Sie Probleme damit haben, dass PHP Zeilenendezeichen nicht erkennt, entweder beim Lesen von Dateien auf einem Macintosh oder bei Dateien die auf einem Macintosh erstellt wurden, können Sie die Option auto_detect_line_endings aktivieren.

    Kommentar


    • #3
      Ich würde mal schätzen das im Response-Header irgendwas von "Transfer-coding: chunked" steht ... 9a gibt in diesem Falle Hexadezimal die Chunk-Size an ...
      http://www.faqs.org/rfcs/rfc2616.html

      Du bist aber nicht der Audi-Gerti von "Gerti's Home-Improvement Page" ... ?!
      carpe noctem

      [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
      [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

      Kommentar


      • #4
        Hi!

        Doch, der Header gibt als Transfere-Encoding "Chunked" zurück.
        Danke für den Tip, habe nun eine Lösung gefunden...

        ...und "Ja", der bin ich...

        Gruß,
        Gerti

        Kommentar


        • #5
          So verzweifelt kenn' ich Dich gar nicht ... grüss' mir Bo. ...
          carpe noctem

          [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
          [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

          Kommentar


          • #6
            Hi!

            Mache ich gerne...aber wer bist Du denn?

            Gruß,
            Gerti

            Kommentar


            • #7
              http://www.php-resource.de/forumma/ma/
              carpe noctem

              [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
              [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

              Kommentar


              • #8
                Hi!

                Hatte schon sowas vermutet :-)

                Gruß,
                Gerti

                Kommentar

                Lädt...
                X