Der Martin: Problem mit zippen und splitten einer Datei in 199 MB-Stücke

Beitrag lesen

Hallo,

Was wohl dadurch begründet ist, dass es ein Memory-Limit für ausgeführte PHP-Skripte gibt - Wowereit!
Und gibt es eine Möglichkeit das Memory-Limit zu umgehen um die 700 MB Datei denoch irgend wie in ein zip zu verwandeln und zu splitten ohne sie runter und dann wieder raufladen zu müssen?

<radio station="eriwan">Im Prinzip ja.</radio>

Nach dem, was du bisher beschrieben hast, scheint die PHP-Klasse, die du gefunden hast, das Archiv komplett im Arbeitsspeicher zu erstellen. Nun müsste man wohl den Code komplett umstricken, so dass die Daten direkt von und zu Datei verarbeitet werden. Das ist aber wahrscheinlich eine größere Geschichte, und es dürfte fast einfacher sein, sich nach anderen fertigen Lösungen umzusehen, die das besser machen.

Oder würde es dir genügen, die Originaldatei ohne Kompression einfach in kleiner Stücke zu splitten? Das wäre natürlich trivial. In Pseudocode:

Fragment-Zähler n := 0
 Öffne Quelldatei zum Lesen
 Öffne Fragment #n zum Schreiben
 Solange Dateiende nicht erreicht
    Lies einen Block von Quelldatei
    Schreibe Block in Zieldatei
    Wenn Zielfragmen>Fragmentgröße
       Schließe Fragment #n
       Erhöhe n
       Öffne Fragment #n zum Schreiben
    ---
 ---
 Schließe Fragment #n
 Schließe Quelldatei
 Fertig!

Auf dem Zielsystem, wo die große Datei im Ganzen verarbeitet werden soll, müssen die Fragmente dann nur wieder zusammenkopiert werden.

So long,
 Martin

--
F: Wer ist der Herrscher über Wasser, Wind und Wellen?
A: Der Friseur.