Moin,
Also, wenn du die Möglichkeit hast, das PHP upzudaten: http://www.php.net/manual/en/function.proc-open.php.
Hätte ich wohl, aber wie komme ich da ran? Habe im CVS geguckt, da nur alle möglichen "wirren" Dateien gefunden, wie soll das funktionieren?
Da liegt bestimmt irgendwo eine Anleitung rum wie man sich PHP aus dem CVS holt und kompiliert. Na sag ich doch: http://www.php.net/anoncvs.php. Hier werden ausserdem daily snapshots erwähnt, mit der ausdrücklichen Anmerkung das das nichts für Produktionssysteme ist: http://www.php.net/downloads.php. Du solltest da also vielleicht doch bis zum Release mit warten.
Ansonsten kann ich sagen, dass die Dateilösung halbwegs befriedigend ist, wenn darin keine vertraulichen Daten kommen und du dich vor evt. Problemen mit dem Überschreiben vorhandener Dateien hütest. Siehe http://www.php.net/manual/en/function.tmpfile.php.
Ich verstehe nicht, was da der Unterschied ist, die Daten in einer Variable zwischenzuspeichern? Ob ich das temporär zur Laufzeit in einer Datei oder einer Variable speichere, da ist die Variable bestimmt erheblich schneller!
Biddewas?
Außerdem bringt das hier nicht viel, denn mein Problem ist ja, das ich die Ausgabe nicht lesen kann, ich schreibe die Datei ja direkt aus der Shell, daher bringt das hier eh nichts!
Genau: Das Problem ist, dass du Daten durch ein externes Programm schicken willst, es zur Zeit aber keine vernünftige Möglichkeit gibt, ein externes Programm zum Lesen _und_ Schreiben zu öffnen. Die vorgeschlagene Lösung war, das Programm nur zum Schreiben zu öffnen und die zu übertragenen Daten dorthin zu schreiben. Die Ausgabe des Programms kannst du dann in eine Datei umleiten (bitte die Datei wie erwähnt erzeugen, damit sich mehrere Instanzen nicht in die Quere kommen und auch einige andere Probleme wegfallen) und diese später einlesen. Dabei gehe ich davon aus, dass die Ausgabe nur eine Art "OK, alles glatt gegangen" sein wird. Du kannst übrigens auch den Statuscode von pclose() auswerten, der sagt dir, ob curl irgendwelche Probleme hatte.
PS: Wirklich verrückte Idee: Du könntest auch zwei Verbindungen mit aufmachen und eine zum Schreiben und die andere zum Lesen nehmen. Auf der anderen Seite unterhalten sich die beiden dadurch aufgerufenen PHP-Skripte dann über http://www.php.net/manual/sv/ref.sem.php.
--
Henryk Plötz
Grüße von der Ostsee