phpbar.de logo

Mailinglisten-Archive

AW: [php] base64_decode

AW: [php] base64_decode

Andreas Müller php at universalware.de
Mit Mai 26 13:20:57 CEST 2004


Hallo Konstantin,
ein riesiges Problem in PHP ist das eigentlich alles in Memory mit Strings,
Array o.ä. abgehandelt wird. Das wäre ja an sich nicht schlimm wenn man
nicht den Speicherverbrauch pro Skript einschränken müsste um nicht uferlos
Speicher zu verbraten. So sind z.B. wenn ich mich nicht irre 8MB per default
eingestellt.

So wenn man nun größere Daten verarbeiten will bekommt man da schnell
Probleme. Wer mag kann ja gern mal versuchem mit den Pear-Mail Klassen eine
sagen wir 4 MB große Mail zu bearbeiten. Oder versucht mal eine 4 MB große
Mail zu verschicken, egal ob per mail() oder Pear-SMTP Klasse. Natürlich
betrifft das auch jeden anderen Bereich wo in der Praxis Daten einfach mal
größer werden.

Daher weiche ich in dem Fall auf das Filesystem aus und halte meine Daten
als Dateien. Wenn man nun z.B. eine 4 MB große Mail parsen will um dem
Benutzer z.B. den Text anzuzeigen und die Attachments zum Download
anzubieten kommt man irgendwann mal an den Punkt wo man z.B. base64_decode
benötigt das sich die Daten von Platte schnappt und diese decodiert, ohne
sie vorher in einen String einlesen zu müssen und der PHP eigenen Funktion
zu übergeben.

Meine Lösung arbeitet erstmal exakt wie die PHP Funktion in Memory, d.h. sie
erwartet einen String als Input und liefert einen Strig zurück. Aber jeder
halbwegs geschickte Programmierer kann die for-schleife über den String
durch eine Schleife über ein File austauschen und das appenden des Results
z.B. in ein write-to-file oder echo ändern. Prinzipiell ging es ja mal um
das base64 Verfahren.

So ich hoffe die Erklärung reicht aus :-)

Gruß,
Andreas



php::bar PHP Wiki   -   Listenarchive