wie die Ausgabe vom Prozess geöffnet von popen in php?
Datei a.php:
<?php
echo "abcdef";
?>
Datei b.php:
<?php
$h=popen('php a.php',r);
pclose($h);
?>
Frage:
Kann ich nicht sehen, das echo-Ergebnis auf der Konsole;
warum und wie es zu sehen?
Ich will nicht zu tun es in der Datei b.php wie:echo stream_get_contents($h);
Du musst angemeldet sein, um einen Kommentar abzugeben.
Überprüfen Sie im zweiten Beispiel in der Dokumentation auf popen, es zeigt genau, wie das geht:
Dieses snippet liest aus stderr. Entfernen Sie die pipe zum Lesen von stdout.
Können Sie nicht sehen, das echo-Ergebnis auf der Konsole, weil es ging nie um die Konsole. Durch die Eröffnung der Prozess im lese-Modus, seine STDOUT verbunden war das Datei-handle der geöffneten Prozess. Die einzige Möglichkeit, die Ausgabe würde man die Konsole wäre es, wenn Sie Lesen, dass der Datei-handle, dann hallte es.
Den Fluss, in anderen Worten, ist dies.
Hoffe, dass erklärt, was hier Los ist. Wenn Sie möchten, um zu sehen, die Ausgabe von a.php auf der Konsole, dann b.php muss es Lesen aus dem stream in $h, then echo, da nur b.php Zugriff auf die Konsole.
Alternativ, wenn Sie die Verwendung von system() anstelle von popen(), die Ausgabe, die Ausgabe auf das aufrufende Skript-Konsole automatisch, denn die Verwendung von system() die Hände über das Haupt-Skript von STDIN und STOUT, um das Programm oder Skript, das Sie anrufen.