具有即時更新的PHP Shell 輸出
PHP 提供了多個執行shell 指令的函數,包括shell_exec、exec、system和passthru。但是,這些函數通常會等到命令完成後再顯示結果。如果您希望在執行過程中查看指令的即時輸出,請考慮以下替代方案:
選項1:使用popen() 進行並行執行
popen()函數在PHP 腳本和執行shell 命令的單獨進程之間開啟一個管道。這允許您的腳本與進程交互,即時讀取其輸出。
<?php $cmd = 'ping -c 10 127.0.0.1'; $proc = popen($cmd, 'r'); echo '<pre class="brush:php;toolbar:false">'; while (!feof($proc)) { echo fread($proc, 4096); flush(); } echo ''; ?>
此程式碼執行 ping 命令並在其可用時顯示其輸出。
選項2:使用passthru() 進行即時輸出
passthru() 函數直接將指令的輸出傳送到使用者的瀏覽器,讓您跳過即時更新並在結果出現時顯示結果。
<?php echo '<pre class="brush:php;toolbar:false">'; passthru($cmd); echo ''; ?>
最佳化提示:
透過使用這些技術,您可以啟用 shell 命令輸出的即時更新您的 PHP 腳本,增強使用者體驗並提供對命令執行的即時洞察。
以上是如何從 PHP Shell 指令執行取得即時更新?的詳細內容。更多資訊請關注PHP中文網其他相關文章!