steffi: FTP-Download

hi,
hab ne datei, die von nem ftp server auf meinen server kopiert werden sollte.
das versuchte ich bereits mit copy und auch manuell mit fopen, fgets + fputs. doch leider kommt in beiden fällen:
connect() failed: Connection refused in ...
failed to open stream: FTP server reports RETR in ...

was ist RETR für ne fehlerquelle und wie bekomm ich die datei trotzdem geladen?
Danke!

  1. hallo steffi,

    das versuchte ich bereits mit copy und auch manuell mit fopen, fgets + fputs.

    Du möchtest dich bitte mit den FTP-Funktionen beschäftigen.

    Grüße aus Berlin

    Christoph S.

    --
    Visitenkarte
    ss:| zu:) ls:& fo:) va:) sh:| rl:|
    1. hallo!
      hat php denn nicht eine nette funktion, die die ftp befehle selbstständig anwendet bei einem input a la "ftp://user:pw@server/dir/file" ?
      oder muss das alles erst gesplittet und verarbeitet werden?
      danke für hinweise

      1. hallo steffi,

        hat php denn nicht eine nette funktion, die die ftp befehle selbstständig anwendet bei einem input a la "ftp://user:pw@server/dir/file" ?

        Du hast noch nicht dort nachgelesen, wohin mein Verweis zu den FTP-Funktionen dich hätte führen sollen.

        oder muss das alles erst gesplittet und verarbeitet werden?

        Nein. Es müssen lediglich die richtigen PHP-Funktionen angewendet werden. fopen, fgets und fputs gelten für HTTP, aber nicht für FTP. Beschäftige dich bitte mit den Unterschieden der Protokolle.

        Grüße aus Berlin

        Christoph S.

        --
        Visitenkarte
        ss:| zu:) ls:& fo:) va:) sh:| rl:|
        1. Hallo Christoph,

          Es müssen lediglich die richtigen PHP-Funktionen angewendet werden. fopen, fgets und fputs gelten für HTTP, aber nicht für FTP.

          Das stimmt nicht!

          Gruß aus Berlin!
          eddi

          --
          Wer Rechtschreibfehler findet, darf sie behalten.
          1. Hello,

            Es müssen lediglich die richtigen PHP-Funktionen angewendet werden. fopen, fgets und fputs gelten für HTTP, aber nicht für FTP.

            Das stimmt nicht!

            Was wir neulich erst in einem etwas längeren Thread zusammen mit Sven R. erarbeitet haben :-)

            Die Filefunktionen _können_ auch als Wrapper benutzt werden, je nachdem, welche PHP-Version im Einsatz ist und welche Einstellung besteht.

            Harzliche Grüße vom Berg
            http://www.annerschbarrich.de

            Tom

            --
            Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
            Nur selber lernen macht schlau

            1. hallo Tom,

              Was wir neulich erst in einem etwas längeren Thread zusammen mit Sven R. erarbeitet haben :-)

              Könntest du den verlinken? Ich war zwischendurch etwa zehn Tage nicht online, vielleicht habt ihr das in diesem Zeitraum erarbeitet und ich habs nicht mitgekriegt ...

              Die Filefunktionen _können_ auch als Wrapper benutzt werden, je nachdem, welche PHP-Version im Einsatz ist und welche Einstellung besteht.

              Das ist schon längere Zeit so (ich weiß auch nicht mehr, ab welcher PHP-Version), galt aber immer als irgendwie unzuverlässig. Außerdem: warum wohl gibt es z.B. ftp_get, wenn nicht eine wie auch immer geartete "Abgrenzung" der Protokolle beabsichtigt wäre?

              Grüße aus Berlin

              Christoph S.

              --
              Visitenkarte
              ss:| zu:) ls:& fo:) va:) sh:| rl:|
              1. Hallo,

                Was wir neulich erst in einem etwas längeren Thread zusammen mit Sven R. erarbeitet haben :-)

                Könntest du den verlinken?

                http://forum.de.selfhtml.org/archiv/2006/2/t123345/

                Die Filefunktionen _können_ auch als Wrapper benutzt werden, je nachdem, welche PHP-Version im Einsatz ist und welche Einstellung besteht.

                Das ist schon längere Zeit so (ich weiß auch nicht mehr, ab welcher PHP-Version), galt aber immer als irgendwie unzuverlässig. Außerdem: warum wohl gibt es z.B. ftp_get, wenn nicht eine wie auch immer geartete "Abgrenzung" der Protokolle beabsichtigt wäre?

                Für das einfache Hoch- und Runterladen sind diese Funktionen durch bestimmte Funktionen des Dateisystems ersetzbar. FTP-Funktionen decken darüberhinaus auch weitere Funktionen des Protokolls ab, die ein Wrapper schlichtweg nicht leisten kann (z. B. die Wiederaufnahme von Dateitransfers).
                 Aber ich sehe eher den Entgegengesetzen Weg in der Entwicklung PHPs - so durch die Einführung der Stream-Funktionen in 4.3. Wer weiß - vielleicht besinnt man sich zukünftig PHP abzuspecken und die Programmierung nicht durch simples Pauken des sich stätig erweiternden Funktionlagers zu "copy and paste programming" verkommen zu lassen.

                Gruß aus Berlin!
                eddi

                --
                Wer Rechtschreibfehler findet, darf sie behalten.
              2. Moin!

                Was wir neulich erst in einem etwas längeren Thread zusammen mit Sven R. erarbeitet haben :-)

                Könntest du den verlinken? Ich war zwischendurch etwa zehn Tage nicht online, vielleicht habt ihr das in diesem Zeitraum erarbeitet und ich habs nicht mitgekriegt ...

                War sehr undramatisch. Grundsätzlicher Punkt: file_exists() erlaubt nicht nur die Spezifikation von lokalen Dateien, sondern ab PHP 5.0 auch die mit allow_url_fopen erreichbaren Protokolle, die über stat-Funktionalität verfügen. Konkret ist das bis dato nur das FTP-Protokoll.

                Die Filefunktionen _können_ auch als Wrapper benutzt werden, je nachdem, welche PHP-Version im Einsatz ist und welche Einstellung besteht.

                Das ist schon längere Zeit so (ich weiß auch nicht mehr, ab welcher PHP-Version)

                PHP 3.

                galt aber immer als irgendwie unzuverlässig.

                Davon ist mir nichts bekannt.

                Außerdem: warum wohl gibt es z.B. ftp_get, wenn nicht eine wie auch immer geartete "Abgrenzung" der Protokolle beabsichtigt wäre?

                Fakt ist, dass die URL-Wrapper für HTTP und FTP existieren und von diversen klassischen Datei-Funktionen wie fopen, include, require etc. genutzt werden.

                Wer es gerne etwas individueller hätte, kann sich alternativ einen eigenen FTP-Client programmieren. Nur weil es spezielle FTP-Funktionen gibt, heißt das aber nicht, dass die anderen Methoden böse, unzuverlässig oder gar verboten wären.

                - Sven Rautenberg

                --
                My sssignature, my preciousssss!
  2. Hallo,

    hab ne datei, die von nem ftp server auf meinen server kopiert werden sollte.
    das versuchte ich bereits mit copy und auch manuell mit fopen, fgets + fputs. doch leider kommt in beiden fällen:
    connect() failed: Connection refused in ...
    failed to open stream: FTP server reports RETR in ...

    mutmaßlich liegt hier ein Fehler im FTP-Wrapper vor, oder er ist schlichtweg nicht vorhanden. Bitte poste Dein Script, sowie die PHP-Version und sieh in der Ausgabe von phpinfo(1); nach, ob unter "Registered PHP Streams" auch "ftp" angegeben ist.

    was ist RETR für ne fehlerquelle und wie bekomm ich die datei trotzdem geladen?

    RFC 959 Abs. 4.1.3:

    RETRIEVE (RETR)

    This command causes the server-DTP to transfer a copy of the
                file, specified in the pathname, to the server- or user-DTP
                at the other end of the data connection.  The status and
                contents of the file at the server site shall be unaffected.

    Gruß aus Berlin!
    eddi

    --
    Wer Rechtschreibfehler findet, darf sie behalten.