Bilder kopieren uebers Web

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

  • Bilder kopieren uebers Web

    hallo zusammen,

    ich moechte gerne bilder aus dem netz auf meinen server kopieren, d.h. ich weiss immer die URL des bildes und will die datei nach einem gewissen system auf meinem server ablegen:

    http://www.blah.de/bilder/bild_test_01.jpg

    ... soll gespeichert werden unter ...

    $DOCUMENT_ROOT/images/konvention.jpg

    wie das system funktioniert, das ist erstmal egal, was ich brauche, ist die funktion, mit der ich die bilddateien aus dem netz holen kann!

    ps. das abholen der bilder ist uebrigens vollkommen legal, das soll so sein - aber alles ohne ftp-zugriff

  • #2
    $src = fopen ('http://www.blah.de/bilder/bild_test_01.jpg', 'r');
    $trg = fopen ('bilder/test/01.jpg', 'w');
    while ($c = fgetc($src)) fputs ($trg, $c);
    fclose ($src);
    fclose ($trg);

    funktioniert nicht von überall, also auf dem endgültigen Server testen!
    mein Sport: mein Frühstück: meine Arbeit:

    Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

    Kommentar


    • #3
      hi titus,

      leider klappt das nicht:
      es wird zwar ein bild erstellt, das hat aber viel zu wenig bytes und funzt nicht ...

      weisst du, woran das liegen kann?

      Kommentar


      • #4
        nötig für Windows:
        häng mal an die Modi noch jeweils ein 'b' dran (also 'rb' und 'wb')

        sinnvoll um MagicQuotes zu umgehen:
        und gib dem fputs einen dritten Parameter: fputs ($trg, $c, 1);
        mein Sport: mein Frühstück: meine Arbeit:

        Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

        Kommentar


        • #5
          hat sich leider nix geaendert ...

          Kommentar


          • #6
            hmm ... vielleicht Null-Bytes?

            while (!(($c = fgetc($src))===false))
            mein Sport: mein Frühstück: meine Arbeit:

            Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

            Kommentar


            • #7
              hallo titus,

              jetzt funktioniert es ;-)
              vielen herzlichen dank, aber: was bedeutet diese null-bytes-show? ich kapier grad gar nix ...

              kaot

              Kommentar


              • #8
                $c entspricht $c != false

                Damit wird nur überprüft, ob $c gesetzt ist. D.h. daß die Schleife abbricht wenn
                - das Ende der Datei erreicht ist (fgetc liefert false zurück)
                - ein Nullbyte gelesen wird (fgetc liefert chr(0) zurück)

                Mit dem Identitäts-Operator === werden hingegen nicht nur die Werte der Operatoren verglichen, sondern auch deren Typ.

                chr(0) ist ein Character (oder String), während false ein Boolean ist. Liefert also fgetc chr(0) zurück, dann ist die Bedingung ($c===false) unwahr, mit dem ! wird die Bedeutung umgekehrt und die Schleife läuft weiter.
                mein Sport: mein Frühstück: meine Arbeit:

                Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

                Kommentar


                • #9
                  D A N K E

                  aha, mir geht langsam ein licht auf.
                  danke nochmal, bis zum naechsten problem ;-)

                  Kommentar


                  • #10
                    Also bei mir klappts nicht, wenn ich dieses Script brauche:
                    Code:
                    $src = fopen('http://www.blah.de/bilder/bild_test_01.jpg', 'rb'); 
                    $trg = fopen ('bilder/test/01.jpg', 'wb'); 
                    while (!(($c = fgetc($src))===false)) fputs ($trg, $c, 1); 
                    fclose ($src); 
                    fclose ($trg);
                    Gruss

                    swisstrain

                    Kommentar


                    • #11
                      Bis Version 4.03:
                      php ohne den Parameter --disable-url-fopen-wrapper compilieren

                      danach:
                      in der php.ini allow_url_fopen auf 1

                      [Editiert von Titus am 04-08-2001 um 17:11]
                      mein Sport: mein Frühstück: meine Arbeit:

                      Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

                      Kommentar

                      Lädt...
                      X