Marco: fgets()

Hallo alle zusammen,
mich würde mal interessieren, wie lang die Zeile einer Datei sein darf. fgets holt ja ohne Parameter maximal nur 1024 Zeichen aus einer Zeile. Ich habe aber festgestellt, dass z.B. in einer gif-Datei die Zeile über 2000 Zeichen lang sein kann.

Marco

  1. Moin Moin !

    Was steht den im PHP-Manual (http://www.php.net/) dazu?

    GIF-Dateien haben keine Zeilen, wenn Du eine GIF-Datei mit fgets liest, hört fgets einfach beim ersten Byte auf, das es für ein Zeilenende hält. Zum Lesen von Binärdaten wie GIF-Dateien gibt es andere Funktionen, auch die stehen im PHP-Manual.

    Alexander

    --
    Nein, ich beantworte keine Fragen per eMail. Dafür ist das Forum da.
    Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so!"
    1. Hallo Alexander,
      eigentlich wollte ich die Dateien wie folgt lesen:
      $datei_content = fread(fopen($datei,"r"),filesize($datei));

      Dabei habe ich nur das Problem, dass es nur für lokal gespeicherte Dateien funktioniert, weil filesize nur mit lokal gespeicherten Dateien funktioniert. Ich möchte aber das ich auch den Inhalt von Dateien lesen kann, die außerhalb des eigenen Servers liegen, z.B.: http://www.abc.de/bild.gif

      Marco

      1. Moin Moin !

        Warum setzt Du nicht einfach einen Link und überläßt dem Browser die Arbeit?

        Alexander

        --
        Nein, ich beantworte keine Fragen per eMail. Dafür ist das Forum da.
        Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so!"
        1. Hallo Alexander,
          ich möchte eine Datei die sich irgendwo ím Netz befindet per Email mit PHP verschicken! Dafür brauche ich den vollständigen Inhalt der Datei.
          Habs auch schon hiermit versucht
          $fp = fopen($file,"r");
          $datei = '';
          while(feof($fp) != 1)
          {
          $datei .= fgets($fp,1024)."\n";
          }
          Dafür brauche ich aber die Zeilenlänge.

          Marco

          1. Moin Moin !

            $datei .= fgets($fp,1024)."\n";
            Dafür brauche ich aber die Zeilenlänge.

            Nein. http://www.php.net/manual/en/function.fgets.php verlinkt auf http://www.php.net/manual/en/function.fread.php, und dort findest Du in den Kommentaren nicht nur Hinweise darauf, daß "Magic Quotes" in diesem Zusammenhang sehr gefährlich sind, sondern auch ein fertiges Stück Code, daß eine Datei aus dem WWW in einen String saugt.

            Dein Problem ist also schon gelöst worden, und hättest Du Dir die Mühe gemacht, ins PHP-Handbuch zu schauen, hättest Du gar nicht fragen müssen. Oder kurz: RTFM!

            Alexander

            --
            Nein, ich beantworte keine Fragen per eMail. Dafür ist das Forum da.
            Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so!"