Rumah > pembangunan bahagian belakang > tutorial php > Bagaimana Saya Boleh Dapatkan Kemas Kini Langsung daripada PHP Shell Command Execution?

Bagaimana Saya Boleh Dapatkan Kemas Kini Langsung daripada PHP Shell Command Execution?

DDD
Lepaskan: 2024-12-01 04:36:16
asal
813 orang telah melayarinya

How Can I Get Live Updates from PHP Shell Command Execution?

Output Shell PHP dengan Kemas Kini Langsung

PHP menyediakan beberapa fungsi untuk melaksanakan perintah shell, termasuk shell_exec, exec, sistem dan passthru. Walau bagaimanapun, fungsi ini biasanya menunggu sehingga arahan selesai sebelum memaparkan keputusan. Jika anda ingin melihat output langsung arahan semasa pelaksanaan, pertimbangkan alternatif berikut:

Pilihan 1: Menggunakan popen() untuk Pelaksanaan Selari

Fungsi popen() membuka paip antara skrip PHP anda dan proses berasingan yang menjalankan perintah shell. Ini membolehkan skrip anda berinteraksi dengan proses, membaca outputnya dalam masa nyata.

<?php
$cmd = 'ping -c 10 127.0.0.1';
$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 menjalankan arahan ping dan memaparkan outputnya apabila ia tersedia.

Pilihan 2: Menggunakan passthru() untuk Live Output

Fungsi passthru() menghantar terus output arahan ke penyemak imbas pengguna, membolehkan anda melangkau kemas kini langsung dan menunjukkan keputusan apabila ia datang.

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

Petua Pengoptimuman:

  • Lumpuhkan penimbalan sesi dengan membuat panggilan session_write_close() untuk mengelakkannya daripada mengganggu pelaksanaan selari.
  • Tetapkan pengepala "X-Accel-Buffering: no" jika pelayan anda berada di belakang gerbang nginx untuk mengelakkan nginx daripada mengganggu output langsung.

Dengan menggunakan teknik ini, anda boleh mendayakan kemas kini langsung arahan shell output dalam skrip PHP anda, mempertingkatkan pengalaman pengguna dan memberikan cerapan masa nyata tentang pelaksanaan arahan.

Atas ialah kandungan terperinci Bagaimana Saya Boleh Dapatkan Kemas Kini Langsung daripada PHP Shell Command Execution?. 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