Heim > Backend-Entwicklung > PHP-Tutorial > Wie kann ich Prozessausgaben in Echtzeit erhalten und Prozesse in PHP ordnungsgemäß beenden?

Wie kann ich Prozessausgaben in Echtzeit erhalten und Prozesse in PHP ordnungsgemäß beenden?

DDD
Freigeben: 2024-12-19 17:28:14
Original
606 Leute haben es durchsucht

How Can I Get Real-Time Process Output and Gracefully Kill Processes in PHP?

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 "
";
Nach dem Login kopieren

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);
});
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage