Ankündigung

Einklappen
Keine Ankündigung bisher.

XML Datei über Proxy holen

Einklappen

Neue Werbung 2019

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

  • XML Datei über Proxy holen

    Hallo,

    ich hab da wieder ein kleines Problem.

    wenn ich folgenden Code ausführe bekomme ich nur ein HTML String zurück.
    Was ich da über den Proxy hole sollte eigentlich eine XML Datei sein.
    Wie kann man den Code so abändern das er mir auch eine XML Datei über den Proxy bringt.

    Code:
    $proxy = "localhost";
    $port = 3129;
    
        $request = "HTTP/4.0\r\n" .
          "If-Modified-Since: Sat, 29 Oct 1994 09:00:00 GMT\r\n" .
          "Pragma: no-cache\r\n".
          "Cache-Control: no-cache\r\n";    
    
    $fp = fsockopen($proxy, $port);
    
         $request = "GET $url $request" .
            "Host: $url\r\n" .
            "Content-Type: text/xml\r\n" .
            "Connection: Close\r\n\r\n";
    
    fputs($fp, $request);
       
      while (!feof($fp)) {
           echo fgets($fp);
       }
       
    fclose($fp);
    Das ist die Datei die er mir holen soll

    "http://www.tagesschau.de/newsticker.rdf"

    Kann mir da jemand helfen.

    Danke schon einmal

    Gruss Net

  • #2
    hat denn da keiner eine Idee wie ich wieder zu ner XML Datei komme ?

    im Prinzip muss in $content diese xml Datei hinein.

    $content = implode ("", file ($url));

    Danke

    Gruss Net

    Kommentar


    • #3
      Und was klappt nicht?

      Kommentar


      • #4
        er bringt mir die ganze Sache als fortlaufenden String und nicht XML Formatiert.

        ich habs jetzt schon in diese Funktion bekommen, aber dort ist es das gleiche.

        Code:
        function fetchURL($url) {
        
        $proxy = "127.0.0.1";
        $port = 3129;
        
            $request = "HTTP/4.0\r\n" .
              "If-Modified-Since: Sat, 29 Oct 1994 09:00:00 GMT\r\n" .
              "Pragma: no-cache\r\n".
              "Cache-Control: no-cache\r\n";    
        
        $fp = fsockopen($proxy, $port);
        
             $request = "GET $url $request" .
                "Host: $proxy\r\n" .
                "Content-Type: text/xml\r\n" .
                "Connection: Close\r\n\r\n";
        
        fwrite($fp,$request);   
          while (!feof($fp)) {
               echo fgets($fp);
           }
        fclose($fp);
        /*************end code**************/
        irgendwie muss das mit dem fwrite umgestaltet werden. gut wäre es wenn ich diese XML auch als Datei abspeichern könnte.
        Aber soweit bin ich noch lange nicht

        Kommentar


        • #5
          Warum, statt "echo fgets($fp)" könntest du den String in eine Datei schreiben.

          http://de.php.net/fopen
          http://de.php.net/fputs
          http://de.php.net/fclose

          Kommentar


          • #6
            obwohl ich doch noch ganz am Anfang stehe, kenne ich die Befehle schon die ich mir Ansehen sollte.
            Bloß nützt das bei mir noch nix. leider. (Aber es kommt hoffentlich noch)

            Also,

            fwrite($fp,$request);
            while (!feof($fp)) {
            echo fgets($fp);
            }

            hier habe ich schon $fp = fsockopen geöffnet.
            wie soll ich denn nun ein zweites $fp öffnen um in eine Datei zu schreiben ?

            so ? --> $fp1 = fopen($cachefile, "w");
            und was soll ich denn hier alles angeben ?
            fputs($fp1,$request); oder fputs($fp,$request);

            bei mir fährt er sich dann immer fest, Rechnerleistung = 100 %

            ich raffels nicht.

            Kommentar


            • #7
              Mal als Beispiel, wie du (ohne copy zu benutzen) eine Datei kopieren könntest:

              PHP-Code:
              <?php
              if ($fpRead fopen($file1'r')) {
                if (
              $fpWrite fopen($file2'w')) {
                  while (!
              feof($fpRead)) {
                    
              fputs($fpReadfgets($fpRead1024)."\n"); // bin nicht sicher ob Zeilenumbruch übernommen wird
                  
              }
                  
              fclose($fpWrite);
                }
                
              fclose($fpRead);
              }
              ?>
              (ungetestet)

              Du kannst also durchaus mehrere Dateien verschachtelt oder wie auch immer lesend oder schreibend öffnen.

              Kommentar


              • #8
                ui, damit ein bisschen herumgespielt und es hat geklappt DANKE

                Hast du auch noch nen Tip wie ich den Anfang der Datei wegbekomme

                HTTP/1.1 200 OK
                Via: 1.1 HST-INT-PRX11
                Connection: close
                Proxy-Connection: close
                Content-Length: 11161
                Date: Tue, 21 Feb 2006 10:47:30 GMT
                Age: 0
                Content-Type: application/xml
                ETag: "57938b-2b99-43faee03"
                Last-Modified: Tue, 21 Feb 2006 10:40:03 GMT
                Server: Apache/1.3.19 (Unix) PHP/4.3.3


                denn diese Infos kann ich in der XML nicht gebrauchen. gibt es da eine Einstellung dafür ?

                Kommentar


                • #9
                  Einfach alles vor
                  < ?xml
                  abschneiden oder wenn der Header immer so aufgebaut ist, die 11 Zeilen eben nicht mit in die Datei speichern.

                  http://de.php.net/strpos
                  http://de.php.net/substr

                  Aber was anderes, ging
                  PHP-Code:
                  <?php
                  file_get_contents
                  ("http://www.tagesschau.de/newsticker.rdf");
                  ?>
                  bei dir nicht?

                  Kommentar


                  • #10
                    das hatte ich auch probiert und bekam ebenfalls alles hintereinander zurück, also ohne XML Formatierung.

                    Ich sitze da schon mit unterbrechungen ne ganze weile dran, aber nun ist es
                    dank deiner Hilfe Geschichte.

                    Kommentar


                    • #11
                      Was meinst du denn immer mit "ohne XML Formatierung"?

                      Kommentar


                      • #12
                        na einfach hintereinander geklatscht in einem string ohne Zeilenumbrüche.

                        ala

                        <channel><title>tagesschau.de - Die Nachrichten der ARD</title><link>http://www.tagesschau.de</link><description>tagesschau.de: Dieses Dokum.....

                        Kommentar


                        • #13
                          Das Format ist doch egal, du willst ja eh nur an die Daten..

                          Kommentar


                          • #14
                            das dacht ich zuerst auch, klappte dann aber mit der implode ("", file ($xml_file)); nicht mehr.

                            da hat er sich dann immer festgefahren.

                            Kommentar


                            • #15
                              Wie parset du denn das XML?

                              http://de3.php.net/xml

                              Kommentar

                              Lädt...
                              X