Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich eine Live-Ausgabe von PHP-Shell-Befehlen erreichen?
Live-Ausgabe mit PHP unter Verwendung von popen() und passhru()
Mit der Shell_exec()-Funktion von PHP können Sie einen Befehl ausführen und ihn erfassen Ausgabe. Allerdings ist die Live-Anzeige der Ausgabe während der Befehlsausführung mit shell_exec() oder anderen integrierten Funktionen wie system(), exec() oder passhru() nicht möglich.
Erwägen Sie für die Live-Ausgabe die Verwendung von popen( ) stattdessen. Es öffnet eine Pipe zu einem Prozess und ermöglicht Ihnen, dessen Ein-/Ausgabe zu lesen oder zu schreiben, als wäre es eine Datei.
Passthru() für sofortige Ausgabe:
Wenn Sie die Ausgabe dem Benutzer direkt anzeigen müssen, ohne auf den Abschluss des Befehls warten zu müssen, können Sie passhru() verwenden:
echo '<pre class="brush:php;toolbar:false">'; passthru($cmd); echo '';
Popen() für Echtzeitausgabe:
Um die Ausgabe live anzuzeigen, während der Befehl ausgeführt wird, verwenden Sie popen() und eine while-Schleife:
while (@ ob_end_flush()); // end output buffers $proc = popen($cmd, 'r'); echo '<pre class="brush:php;toolbar:false">'; while (!feof($proc)) { echo fread($proc, 4096); @ flush(); } echo '';
Dieser Code öffnet eine Pipe zum Befehl, liest seine Ausgabe in Blöcken und zeigt sie im laufenden Betrieb an.
Nützlich Information:
Das obige ist der detaillierte Inhalt vonWie kann ich eine Live-Ausgabe von PHP-Shell-Befehlen erreichen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!