簡體   English   中英

顯示從shell_exec獲取的輸出並實時顯示,而不是等待5-7分鍾后顯示

[英]Show output taken from shell_exec and display it in real time instead of after waiting 5-7min

現在,我有如下代碼。

$output = shell_exec( !-- unix commands are here --! );
echo $output; 

我有一個網站,單擊特定按鈕后,將輸出外殼腳本並將其顯示在瀏覽器中。 這很正常。 唯一的問題是,直到輸出完成,我才能看到輸出發生了什么。 我必須等待大約5-7分鍾,然后才能看到大約一百行輸出。 我正在嘗試在輸出執行時將其輸出到瀏覽器中-我希望能夠實時看到該輸出(在瀏覽器上)。

我嘗試使用popenproc_openflush()ob_start等。似乎什么都沒有用。 我只是嘗試打開一個文本文件,將輸出內容寫入文本文件,然后在循環中增量讀取文本文件。 我是php的初學者,所以可能沒有正確使用上述任何方法。

最簡單的方法是什么?

因為PHP在阻塞模式下運行exec,system,pass_thru等,所以您的可能性非常有限。 PHP將要求代碼在繼續執行整個腳本之前完成執行,除非您執行類似以下操作的命令:

"> /dev/null 2>/dev/null &"

當然,這將停止命令的輸出,但是..可能類似於:

exec('command > /cmd_file 2>/cmd_file &');

$file = fopen('/cmd_file', 'r');
while (!feof($file)) {
    echo fgets($file);
    sleep(1);
}

fclose($file);

值得一試。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM