PHP文件执行带有连续输出的shell命令

时间:2014-04-18 18:38:21

标签: php shell

从PHP运行shell命令是这样的:

<?php
$cmd = 'du /';
print shell_exec ( $cmd );
?>

或者

<?php
$cmd = 'du /';
passthru ( $cmd );
?>

但是,只有在作业完成后才能看到输出,如何获得连续输出?上面的du命令需要一段时间才能完成,我希望看到输出现场。

我的用例是运行CD开膛手和标记器ABCDE,我希望技术人员不那么能够去网页开始一个rip工作,但能够看到它的进展。

(最后,有一种很好的方法可以用屏幕或tmux包装它,所以如果页面加载终止了作业则不会)

1 个答案:

答案 0 :(得分:1)

使用proc_open。然后,当数据写入流时,您可以单独读取stdout或stderr。