我試圖從php執行一個bash腳本並實時獲取其輸出。從PHP執行的Bash腳本實時輸出
我申請的答案找到here:
但是他們不是爲我工作。
當我調用這個方式.SH腳本,它工作正常:
<?php
$output = shell_exec("./test.sh");
echo "<pre>$output</pre>";
?>
但是,這樣做的時候:
<?php
echo '<pre>';
passthru(./test.sh);
echo '</pre>';
?>
或:
<?php
while (@ ob_end_flush()); // end all output buffers if any
$proc = popen(./test.sh, 'r');
echo '<pre>';
while (!feof($proc))
{
echo fread($proc, 4096);
@ flush();
}
echo '</pre>';
?>
我沒有在我的瀏覽器中輸出。
我也試着撥打變量,而不是腳本在兩種情況下,我的意思是:
<?php
$output = shell_exec("./test.sh");
echo '<pre>';
passthru($output);
echo '</pre>';
?>
這是我的test.sh腳本:
#!/bin/bash
whoami
sleep 3
dmesg
應該引用文件名 - passthru(「./test.sh」);' - 即使這樣,它也不起作用? – ewcz
@ewcz它可以和我的test.sh例子一起工作,謝謝。然而,它不適用於我想要使用的實際腳本。至少這是一個開始,我可以從現在開始進一步分析。如果你寫你的評論作爲答案,我會驗證它。 –