2016-11-04 3 views
0

ich einen Befehl als solche ausgeführt wird:Capture-bash Ausgabe in Echtzeit von PHP exec()

exec("grunt build --target=prod", $output, $status); 

Dies läuft nur grunzen in einem Ordner und baut sie. Die Ausgabe wird ohne Problem erfasst. Es ist jedoch alles am Ende entleert und Grunt Builds können etwas dauern.

Ich würde gerne wissen, ob ich die Ausgabe erfassen kann, wie es passiert, und in der Lage sein, es in Echtzeit zu echo.

Irgendeine Idee, wenn das eine Sache ist?

+1

http://stackoverflow.com/questions/1281140/run-process-with-realtime-output-in-php – AbraCadaver

Antwort

0

Sie sollten system() stattdessen verwenden, so dass Sie die Ausgabe des Befehls erfassen können Sie laufen haben ...

Wenn Sie den Anruf einer Variablen zuweisen werden Sie die letzte Zeile der Ausgabe erhalten, Sie‘ ll sieht auch die gesamte Ausgabe erhalten,:

$lastLine = system("grunt build --target=prod", $output); 
print_r($output); // to get entire output 

Zusammen mit output_buffering Sie die Ausgabe einer Zeile zu einem Zeitpunkt, spülen können.