Henryk Plötz: Die Lösung

Beitrag lesen

Moin,

Das funktioniert jetzt jedenfalls, in der Datei curlausgabe.txt stehen die ersehnten Daten ;-)

Ja, das wäre die einfachste Idee die ich hätte. Eine weitere wären named pipes (mit mkfifo) die in dem Doku-Ausschnitt erwähnt wurden.
Bei einer richtigen[tm] Programmiersprache würde man an dieser Stelle zwei verbundene Pipes (pipe()-Bibliotheksfunktion iirc) erzeugen, einen fork machen (mit fork()), im Kindprozess je ein Ende der beiden Pipes mit Stdin bzw. Stdout verbinden (das andere Ende schliessen; im Elternprozess ebenfalls das andere Ende schliessen) und dann mit exec() das gewünschte Kommando aufrufen. Mit exec() wird dein Programm (im Kindprozess) aus dem Speicher entfernt und das neue Programm an dessen Stelle geladen, aber die umgeleiteten Stdin/out bleiben erhalten. (Perl hat für diesen Zweck übrigens extra open2 und open3-Funktionen.)

Wenn Ihr noch ne Idee habet wie ich das ophne Umweg über eine externe Datei machen kann(und ohne auf eine andere Programmiersprachen umzusteigen;-)), dann her damit!

Also, wenn du die Möglichkeit hast, das PHP upzudaten: http://www.php.net/manual/en/function.proc-open.php. Ansonsten: PHP ist fast eine richtige Programmiersprache und die erwähnten fork() und exec()-Funktionen, allerdings nicht unter Windows und nicht defaultmäßig aktiviert: http://www.php.net/manual/en/ref.pcntl.php. Solltest du diesen Weg wählen (das ist übrigens der richtige[tm]), solltest du dir aber wirklich was Gutes zum Lesen über Prozesskontrolle und Interprozesskommunikation besorgen.

Ich weil ja den Dump übertragen, wo wir vorher mit Mühe und Not die \n´s reinbekommen haben - die sind wieder weg ;-) Aber nicht nur das, der kpomplette Dump ist irgendwo durch eine Art addslashes() gegangen, vor jedem '"\ usw. steht jetzt ein , daher sind vermutlioch jetzt 3 Slashes vor dem n, also \\n und schon ergibt das für die Ausgabe einen \ und einen Umbruch ;-) OK, das bekomme  ich mit stripslashes wieder weg, würde mich nur mal interesieren, wo die Dinger bitte herkommen!

Naja, für das PHP-Skript sieht es ja so aus als wären die Daten über POST reingekommen (sind sie ja auch). Wenn du die Rückrichtung meinst, schau mal nach magic_quotes_runtime.

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.

--
Henryk Plötz
Grüße von der Ostsee