Rumah > pembangunan bahagian belakang > tutorial php > Bagaimanakah Saya Boleh Mencapai Output Langsung daripada Perintah Shell PHP?

Bagaimanakah Saya Boleh Mencapai Output Langsung daripada Perintah Shell PHP?

Mary-Kate Olsen
Lepaskan: 2024-12-01 00:41:11
asal
414 orang telah melayarinya

How Can I Achieve Live Output from PHP Shell Commands?

Output Langsung dengan PHP Menggunakan popen() dan passthru()

Fungsi shell_exec() PHP membolehkan anda melaksanakan arahan dan menangkapnya keluaran. Walau bagaimanapun, memaparkan output secara langsung semasa pelaksanaan perintah tidak boleh dilakukan dengan shell_exec() atau fungsi terbina dalam lain seperti system(), exec(), atau passthru().

Untuk output langsung, pertimbangkan untuk menggunakan popen( ) sebaliknya. Ia membuka paip kepada proses dan membolehkan anda membaca atau menulis input/outputnya seolah-olah ia adalah fail.

Passthru() untuk Output Segera:

Jika anda perlu memaparkan output terus kepada pengguna tanpa menunggu arahan selesai, anda boleh gunakan passthru():

echo '<pre class="brush:php;toolbar:false">';
passthru($cmd);
echo '
';
Salin selepas log masuk

Popen() untuk Output Masa Nyata:

Untuk memaparkan output secara langsung semasa arahan dijalankan, gunakan popen() dan a gelung while:

while (@ ob_end_flush()); // end output buffers

$proc = popen($cmd, 'r');
echo '<pre class="brush:php;toolbar:false">';
while (!feof($proc)) {
    echo fread($proc, 4096);
    @ flush();
}
echo '
';
Salin selepas log masuk

Kod ini membuka paip kepada arahan, membaca outputnya dalam ketulan dan memaparkannya pada fly.

Maklumat Berguna:

  • Panggil session_write_close() sebelum gelung untuk mengelakkan isu sesi.
  • Untuk pelayan di belakang nginx, tambah pengepala 'X-Accel-Buffering: no' untuk mengelakkan nginx penimbalan.
  • Perhatikan bahawa output langsung mungkin mengganggu jika kod anda berjalan dalam gelung yang turut mengemas kini sesi.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencapai Output Langsung daripada Perintah Shell 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan