CSV-Datei von fremdem Server importieren

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

  • #16
    Also ich kann mir absolut nicht erklären an was es liegen könnte. Habe die Datei direkt aufgerufen; hat geklappt. Dann hab ich eine PHP-Header-Weiterleitung gebastelt: hat ebenfalls geklappt.

    Nur das andere haut nicht hin. Das leitet immer noch zur Startseite von Zanox weiter.

    Das Live HTTP Header-Extension hab ich auch benutzt, hat mir einen 302er ausgegeben.
    Das Genie überblickt das Chaos!

    Wer Rechtschreibfehler findet, darf sie behalten!

    Kommentar


    • #17
      Vielleicht schützt sich der Anbieter vor genau solchen Geschichten, in dem er z.B. die Request Header prüft.
      Frag ihn mal.

      Kommentar


      • #18
        Hmm, aber könnte ich dann mit einer PHP-Header-Weiterleitung auf die Datei zugreifen? Das sollte dann doch auch nicht funktionieren, oder?

        PHP-Code:
            $link "http://productdata.zanox.com/CSVFormat.aspx?partnerCode=..";
            
        header("Status: 301 Moved Permanently");
            
        header("Location:".$link."");
            exit; 
        Das Genie überblickt das Chaos!

        Wer Rechtschreibfehler findet, darf sie behalten!

        Kommentar


        • #19
          Du hast wirklich keine Ahnung von HTTP oder?

          Dieser Codeschnipsel sendet dem Client, also deinem Browser eine Antwort, die nichts weiter enthält als die Aussage "die gewünschte Resource befindet sich da". Darauf hin erzeugt dein Browser einen neuen Request und holt sich die Resource vom angegebenen Ort.
          Dabei sendet er natürlich fast die selben Header, insbesondere den selben UA-String.

          Kommentar


          • #20
            Also gut, dann geb ich's an der Stelle jetzt erstmal auf und frage beim Provider nach, ob er Request Header unterstützt (Können die vom Provider für einzelne Verzeichnisse "freigeschalten" werden?).

            Dann hätte ich noch eine andere Frage, angenommen es hätte funktioniert, wäre es dann möglich die Datei komplett, so wie sie ist auf meinen eigenen Server zu ziehen?
            Das Genie überblickt das Chaos!

            Wer Rechtschreibfehler findet, darf sie behalten!

            Kommentar


            • #21
              Original geschrieben von chefdesigner
              Also gut, dann geb ich's an der Stelle jetzt erstmal auf und frage beim Provider nach, ob er Request Header unterstützt (Können die vom Provider für einzelne Verzeichnisse "freigeschalten" werden?).
              Mach dich lieber erstmal schlau, was HTTP Request Header überhaupt sind.
              Dann hätte ich noch eine andere Frage, angenommen es hätte funktioniert, wäre es dann möglich die Datei komplett, so wie sie ist auf meinen eigenen Server zu ziehen?
              Frag deine Provider besser gleich, ob er dir die Datei per Mail schickt.

              Kommentar


              • #22
                Das bringt mir ja nichts, runterladen kann ich mir die Datei ja auch. Es geht mir ja darum, dass ich die Datei, sofern möglich, mit einem Script auf meinen Server ziehen kann, anschließend sollen nicht benötigte Spalten gelöscht werden und der Ganze Inhalt in eine Datenbank geknallt werden. Dieses Script soll über einen Cron-Job aufgerufen werden.

                Jetzt wüsste ich halt gern ob das so funktionieren könnte. Bis jetzt hab ich ja auch ganz ordentliche Antworten bekommen.
                Das Genie überblickt das Chaos!

                Wer Rechtschreibfehler findet, darf sie behalten!

                Kommentar


                • #23
                  Die bisherigen Antworten haben deinerseits gewisse Grundkenntnisse vorausgesetzt.

                  Wegen allow_url_fopen=no geht es nicht mit copy() oder fopen().
                  Da wir nicht mit Kanonen auf Spatzen schießen wollen, kommt cURL nicht in Frage. Also bleibt nur fsockopen().
                  Damit kannst du das nachbauen, was fopen() sonst machen würde: Socket aufbauen, HTTP-Request absetzen, HTTP-Response empfangen, Socket schließen.

                  Wenn der Anbieter den Zugang zur Datei nur (echten) Browsern gewährt, mußt du eben den HTTP-Dialog nachahmen, den du mit Live Header im Firefox beobachtet hast.

                  Was ist daran so kompliziert? Wo klemmts?

                  Kommentar


                  • #24
                    Guck dir mal diese HttpClient-Klasse an, die macht dir einiges einfacher.

                    Kommentar


                    • #25
                      Wenn du einen 302-er erhälst, dann musst du diese Serverantwort auswerten, die neue ZielURL auslesen und auf diese neue URL einen Request absetzen. Oder du ermittelst gleich die ZielURL und setzt den Request von Anfang an auf diese URL
                      Btw du kennst die verschiedenen Status Codes von HTTP?
                      Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                      [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                      Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                      Kommentar


                      • #26
                        Oder du ermittelst gleich die ZielURL und setzt den Request von Anfang an auf diese URL
                        Nein, das sollte er nicht.
                        http://rfc.net/rfc2616.html#s10.3.3
                        Since the redirection might be altered on occasion, the client SHOULD continue to use the Request-URI for future requests.

                        Kommentar


                        • #27
                          Nein, das sollte er nicht.
                          Stimmt, aber für seinen Zweck wäre es einen Versuch wert. Geht sicher schneller als die Auswertung der Antwortheader zu programmieren
                          Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                          [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                          Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                          Kommentar


                          • #28
                            Oder den HttpClient verwenden, der macht's direkt von Haus aus

                            Kommentar


                            • #29
                              Erstmal vielen Dank für eure Hilfe, ich werde mir eure Ratschläge am Wochenende mal genauer ansehen.
                              Das Genie überblickt das Chaos!

                              Wer Rechtschreibfehler findet, darf sie behalten!

                              Kommentar

                              Lädt...
                              X