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

Bagaimanakah Saya Boleh Mendapatkan Output Langsung daripada Perintah Shell dalam PHP?

DDD
Lepaskan: 2024-12-02 20:17:12
asal
663 orang telah melayarinya

How Can I Get Live Output from Shell Commands in PHP?

Mengakses Output Langsung melalui PHP dengan Perintah Shell

Fungsi shell_exec PHP menyediakan cara yang mudah untuk melaksanakan perintah shell dari dalam skrip PHP. Walau bagaimanapun, ia boleh menjadi mencabar untuk mendapatkan semula output langsung arahan ini semasa masa jalan. Artikel ini meneroka dua kaedah untuk mencapai kefungsian ini.

popen() dan Interaktiviti

Untuk berinteraksi dengan proses dan membaca outputnya semasa ia berjalan, gunakan popen() . Fungsi ini mengembalikan penuding fail yang boleh dilayan seperti mana-mana sumber fail lain.

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

Skrip ini memulakan arahan, membaca outputnya dalam ketulan 4096 bait dan mencetaknya terus ke halaman. Panggilan flush() memastikan output dipaparkan serta-merta.

Kemudahan dengan passthru()

Jika interaktiviti langsung tidak diperlukan, passthru() menyediakan pendekatan alternatif. Fungsi ini secara langsung menggemakan output arahan ke halaman.

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

Walaupun passthru() adalah lebih mudah, ia mengeluarkan keseluruhan hasil arahan sekaligus, yang mungkin tidak sesuai untuk arahan yang menghasilkan jumlah yang besar daripada output.

Kesimpulan

Kedua-dua popen() dan passthru() menawarkan berbeza mekanisme untuk mengakses output langsung daripada arahan shell dalam PHP. popen() menyediakan kawalan terperinci ke atas pengambilan data, membenarkan kemas kini masa nyata. passthru(), sebaliknya, mengorbankan interaktiviti untuk kemudahan penggunaan, menjadikannya sesuai untuk senario di mana output segera dikehendaki.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mendapatkan Output Langsung daripada Perintah Shell 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