.gz entpacken

Raven280438

Erfahrenes Mitglied
Hi,

ich möchte eine .gz Datei mit PHP entpacken und den Inhalt in eine Variable speichern.

Bei der Funktion gzread() muss man aber die Anzahl der zu lesenden Bytes angeben.
Die kenn ich aber nicht, filesize() kann man nicht benutzten, weil die Datei ja kompremiert ist.

Meine Frage:
Wenn ich einen festen Wert, z.B. 52428800 (50MB) angeben, benötigt PHP dann die 50MB vom Speicher, oder nur den wirklichen Wert.

Oder gibt es noch eine einfachere Möglichkeit, den Inhalt der gz-Datei in eine Variable zu packen?



Gruß
 
Die gzread()-Funktion liest nur so viele Bytes wie tatsächlich vorhanden. Wenn also der angegebene Wert größer als die vorhandenen Bytes ist, werden auch nur die vorhandenen ausgelesen und der Rest verworfen, da es ja auch nichts mehr zu lesen gibt.
 
Also wenn das Skript z.B. 5mal gleichzeitig läuft, sind nicht 250mb speicher weg? ^^

Ich frage aus dem Grund, weill ich mal testweise 100mb eingestellt hatte, und ich dann die Fehlermeldung bekam, dass das Memory_limit nur 65MB ist.
 
Du solltest die Verarbeitung schon stückweise machen, da es sonst natürlich schon passieren kann, dass der Speicher aufgebraucht wird.
 
Dann hast du wohl einen logischen Fehler im Skript, vielleicht eine (Beinahe-)Endlosschleife oder ähnliches.
 
Zurück