In timer.php Ich habe dies:In PHP Ich bin leider nicht möglich, Rohr von einem Prozess zu einem anderen
$handle = fopen('php://stdout', 'wa') ;
$unusedEvTimerObject = new EvTimer(0, 1, function ($watchercallback) use ($handle) { //create & call timer
echo "=>".(Ev::iteration() % 60)."<=";
fwrite($handle, "Hello World! \n");
});
Ev::run();
fclose($handle);
Und in child.php Ich habe dies:
$descriptorspec = array(
0 => array("pipe", "r"),
1 => array("pipe", "w"),
2 => array("file", "/tmp/error-output.txt", "a")
);
$process = proc_open('php ', $descriptorspec, $pipes);
if (is_resource($process)) {
fwrite($pipes[0], "<? include('app/timer.php'); ?>");
fclose($pipes[0]);
$output = "";
while (!feof($pipes[1])) {
$output .= fgets($pipes[1]);
};
fclose($pipes[1]);
$return_value = proc_close($process);
echo "command returned $return_value\n";
}
Wenn ich rufe mit
$ php app/timer.php
der Ausgang I „=> 1 < = Hallo Welt erhalten timer.php direkt! => 2 < = Hallo Welt! "
aber wenn ich mit $ php app/child.php aufrufen bekomme ich keine Ausgabe, während ich erwarten würde, dass stdout von timer.php in child.php umleiten und von ihm gedruckt werden.
Ich fummle ein bisschen & Ich rate, child.php bekommt keine Eingabe, aber ich kann nicht sehen, warum. Halbe!
Sie könnten versuchen, alle Ausgaben im Puffer in der untergeordneten Datei aufnehmen, dann Ausgabe, die es am Ende –