phpbar.de logo

Mailinglisten-Archive

[php]-allow_url_fopen

[php]-allow_url_fopen

Dennis Sterzenbach lists at darknoise.de
Die Okt 21 14:54:36 CEST 2003


Hi Gerd,

> > $str = "";
> > $fp = fopen('http://www.test.de/myfile.php', 'r');
>
> $ttllen = 0;
>
> > while (!feof($fp)) {
> >     $str .= fread($fp, 1024);
>
> $ttllen+=strlen($str);
>
> > }
> > fclose($fp);
> > $length = strlen($str);
> >
>
> ermittelt die Länge der letzten Zeile, $ttllen sollte die Anzahl der
> Byte im File zurückgeben.
>
Nuja, das Ermitteln der Bytes erledigt meine Lösung mit
$length = strlen($str); ja bereits...

Und Deine Lösung ist übrigens fehlerhaft ;)
In dem Code oben würde das
$ttllen += strlen($str);
immer zu einer zu großen Zahl führen.

Meine Lösung liest ja zuvor den gesamten Output in einen String.
Okay das ist ziemlich resourcenlastig und daher sicher nicht optimal,
deshalb: das Ganze einfach wie folgt lösen:

$size = 0;
$fp = fopen('http://www.test.de/myfile.php', 'r');
while (!feof($fp)) {
    $str = fread($fp, 1024);
    $size += strlen($str);
}
fclose($fp);

Die Länge steht anschließend in Bytes in der Variablen $size
Das spart ziemlich viel Arbeit für PHP und *ein wenig* Speicher.

Gruß
  Dennis




php::bar PHP Wiki   -   Listenarchive