使用popen() 和passthru() 使用PHP 進行即時輸出
PHP 的shell_exec() 函數允許您執行命令並捕獲其輸出。但是,使用 shell_exec() 或其他內建函數(如 system()、exec() 或 passthru())無法在命令執行期間即時顯示輸出。
對於即時輸出,請考慮使用 popen( ) 反而。它打開一個通往進程的管道,並允許您像檔案一樣讀取或寫入其輸入/輸出。
用於立即輸出的Passthru():
如果需要直接向使用者顯示輸出而不等待命令完成,可以使用passthru():
echo '<pre class="brush:php;toolbar:false">'; passthru($cmd); echo '';
Popen()用於即時輸出:
要在命令執行時即時顯示輸出,請使用 popen() 和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 '';
此程式碼開啟指令的管道,以區塊的形式讀取其輸出,並將其顯示在
有用資訊:
以上是如何實現PHP Shell指令的即時輸出?的詳細內容。更多資訊請關注PHP中文網其他相關文章!