Echtzeit-Prozessausgabe in PHP
Das Ausführen von Prozessen, die in Echtzeit auf einer Webseite ausgegeben werden, kann die Benutzererfahrung verbessern und eine sofortige Bereitstellung ermöglichen Rückmeldung. In PHP ist es möglich, dies mit der Funktion proc_open() zu erreichen.
Echtzeitausgabe erhalten
Um eine Echtzeitausgabe von einem Prozess zu erhalten, verwenden Sie proc_open () wie folgt:
$cmd = "ping 127.0.0.1"; $descriptorspec = array( 0 => array("pipe", "r"), 1 => array("pipe", "w"), 2 => array("pipe", "w") ); $process = proc_open($cmd, $descriptorspec, $pipes, realpath('./'), array()); // Display output echo "<pre class="brush:php;toolbar:false">"; if (is_resource($process)) { while ($s = fgets($pipes[1])) { print $s; flush(); } } echo "";
In diesem Code wird die Ausgabe des Ping-Prozesses kontinuierlich aus der Pipe $pipes[1] gelesen. und angezeigt.
Prozess beim Verlassen der Seite abbrechen
Um einen Prozess beim Verlassen einer Seite abzubrechen, verwenden Sie den folgenden Code:
register_shutdown_function(function() use ($process) { proc_terminate($process); // Wait for process to terminate gracefully proc_close($process); });
Dieser Code registriert eine Shutdown-Funktion, die einen Prozess beendet, wenn das Skript beendet wird. Es wartet außerdem elegant auf den Abschluss des Prozesses, bevor es ihn schließt.
Durch die Nutzung von proc_open() und register_shutdown_function() können Sie Prozesse ausführen und deren Echtzeitausgabe in PHP erhalten. Wenn die Seite beendet wird, wird der Prozess automatisch beendet, um zu verhindern, dass Systemressourcen zurückbleiben.
Das obige ist der detaillierte Inhalt vonWie kann ich Prozessausgaben in Echtzeit erhalten und Prozesse in PHP ordnungsgemäß beenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!