[英]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分鍾,然后才能看到大約一百行輸出。 我正在嘗試在輸出執行時將其輸出到瀏覽器中-我希望能夠實時看到該輸出(在瀏覽器上)。
我嘗試使用popen
, proc_open
, flush()
, 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.