Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Mendapatkan Output Proses Masa Nyata dan Membunuh Proses dengan Anggun dalam PHP?

Bagaimanakah Saya Boleh Mendapatkan Output Proses Masa Nyata dan Membunuh Proses dengan Anggun dalam PHP?

DDD
DDDasal
2024-12-19 17:28:14628semak imbas

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

Output Proses Masa Nyata dalam PHP

Menjalankan proses yang menghasilkan output dalam masa nyata pada halaman web boleh meningkatkan pengalaman pengguna dan menyediakan serta-merta maklum balas. Dalam PHP, adalah mungkin untuk mencapai ini menggunakan fungsi proc_open().

Mendapatkan Output Masa Nyata

Untuk mendapatkan output masa nyata daripada proses, gunakan proc_open () seperti berikut:

$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 "
";

Dalam kod ini, output proses ping dibaca secara berterusan daripada paip $pipes[1] dan dipaparkan.

Membunuh Proses pada Keluar Halaman

Untuk mematikan proses apabila halaman keluar, gunakan kod berikut:

register_shutdown_function(function() use ($process) {
    proc_terminate($process);
    // Wait for process to terminate gracefully
    proc_close($process);
});

Kod ini mendaftarkan fungsi penutupan yang menamatkan proses apabila skrip keluar. Ia juga dengan anggun menunggu proses selesai sebelum menutupnya.

Dengan memanfaatkan proc_open() dan register_shutdown_function(), anda boleh melaksanakan proses dan mendapatkan output masa nyata mereka dalam PHP. Apabila halaman keluar, proses ditamatkan secara automatik untuk mengelakkan sebarang sumber sistem yang berlarutan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendapatkan Output Proses Masa Nyata dan Membunuh Proses dengan Anggun dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn