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
Lepaskan: 2024-12-19 17:28:14
asal
606 orang telah melayarinya

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 "
";
Salin selepas log masuk

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);
});
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan