Der Martin: Große Dateien aufspringen mit PHP / Shell

Beitrag lesen

Hallo,

da der Threadersteller ja nicht rausrücken will, was konkret er mit den Dateien vorhat, gehe ich von folgenden Tatsachen entspr. seiner Posts aus:

  • Die Art und Größe der Dateien ist bis auf die Max-Size von 200 MB unbekannt
  • Er will den Code nicht durchsuchen, sondern "modifizieren" (was und wie immer er damit vorhat)

Modifizieren impliziert aber meistens ein Durchsuchen, weil man ja die zu modifizierenden Stellen erkennen muss.

Das bedeutet ja für mich:

  • er muss die Datei laden (spätestens bei bin2hex) ist die Datei komplett im Arbeitsspeicher

Wieso das? Das kann man auch abschnittweise machen.

  • wenn er eine 160MB bearbeiten will, hält PHP die Datei vollständig bis zum Abschluss selbige vor, was zur Folge hat das hier sehr schnell die (Resourcen-)Grenzen erschöpft sein werden.

Nicht unbedingt. Originaldatei zum Lesen öffnen, Zieldatei zum Schreiben öffnen, und streamorientiert lesen bzw. schreiben. Damit brauche ich zwar den doppelten Plattenplatz, aber der ist meist nicht der limitierende Faktor. Dafür brauche ich aber nur einen relativ kleinen Puffer im Arbeitsspeicher.

So long,
 Martin

--
Nothing travels faster than the speed of light with the possible exception of bad news, which obeys its own special laws.
- Douglas Adams, The Hitchhiker's Guide To The Galaxy