Tom: Arbeitsspeicher ist begrenzt

Beitrag lesen

Hello Christian,

Muss man eben eine genügend große Zahl angeben.

Nein. Im Regelfall wird das so gemacht:

define('BUFFLEN',512);

$gz = gzopen("file","r");
while(!gzeof($gz)) {
  $str = gzread($gz,BUFFLEN);
  # tu was mit $str
}
gzclose($gz);

Die Aktion in der Schleife kann selbstverstaendlich auch ein $str .=
sein. Die Groesse von 512 Byte habe ich gewaehlt, weil es bei vielen
x86-Systemen eine Groesse ist, die leicht alloziiert werden kann.

...womit wir ja wieder beim Thema wären. Ich weiß ja, dass die Filezugriffe mehrfach buffered werden *hihi* aber gegen solche Konstruktionen sträubt sich mein altes Low-Level-Programmierer-Ego immer noch. Dass das so geht, war mir klar. Andersherum habe ich in meinem Scriptkonzept für diese Variable nur eine gewisse Größe vorgesehen und dann ist es ja nicht verkehrt, die auch zu achten. Der Leseprozess hört ja von alleine bei EOF auf, sonst wäre Deine Konstruktion auch nicht erlaubt.

Ergo kann man auch gleich eine entsprechende Anforderung stellen und hinterher vergleichen, wieviele Bytes gelesen werden konnten oder eben dann EOF abfragen.

Leider konnte ich in PHP 4 noch keine Möglichkeit entdecken, den für das Script noch verfügbaren Arbeitsspeicher bzw. den schon verwendeten zu ermitteln. Kennst Du eine?

Liebe Grüße aus http://www.braunschweig.de

Tom

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