fgets()
Marco
- php
0 Alexander Foken0 Marco
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
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
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
Moin Moin !
Warum setzt Du nicht einfach einen Link und überläßt dem Browser die Arbeit?
Alexander
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
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