Heim >Backend-Entwicklung >PHP-Tutorial >Wie kann ich Live-Updates von der PHP-Shell-Befehlsausführung erhalten?
PHP-Shell-Ausgabe mit Live-Updates
PHP bietet mehrere Funktionen zum Ausführen von Shell-Befehlen, einschließlich Shell_exec, Exec, System und Durchgang. Diese Funktionen warten jedoch normalerweise, bis der Befehl abgeschlossen ist, bevor sie die Ergebnisse anzeigen. Wenn Sie die Live-Ausgabe des Befehls während der Ausführung anzeigen möchten, ziehen Sie die folgenden Alternativen in Betracht:
Option 1: Verwendung von popen() für die parallele Ausführung
Die Funktion popen() öffnet eine Pipe zwischen Ihrem PHP-Skript und einem separaten Prozess, der den Shell-Befehl ausführt. Dadurch kann Ihr Skript mit dem Prozess interagieren und seine Ausgabe in Echtzeit lesen.
<?php $cmd = 'ping -c 10 127.0.0.1'; $proc = popen($cmd, 'r'); echo '<pre class="brush:php;toolbar:false">'; while (!feof($proc)) { echo fread($proc, 4096); flush(); } echo ''; ?>
Dieser Code führt den Ping-Befehl aus und zeigt seine Ausgabe an, sobald sie verfügbar ist.
Option 2: Verwendung von passhru() für die Live-Ausgabe
Die Funktion passhru() sendet die Ausgabe des Befehls direkt an den Browser des Benutzers, sodass Sie um die Live-Updates zu überspringen und die Ergebnisse sofort anzuzeigen.
<?php echo '<pre class="brush:php;toolbar:false">'; passthru($cmd); echo ''; ?>
Optimierungstipps:
Durch die Verwendung dieser Techniken können Sie Live-Updates der Shell-Befehlsausgabe in Ihren PHP-Skripten ermöglichen, das Benutzererlebnis verbessern und Echtzeit-Einblicke liefern die Ausführung des Befehls.
Das obige ist der detaillierte Inhalt vonWie kann ich Live-Updates von der PHP-Shell-Befehlsausführung erhalten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!