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!