Mailinglisten-Archive |
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