PHP实时查看exec状态,是否可能?

时间:2012-12-01 06:06:25

标签: php ubuntu

我正在使用ubuntu和mktorrent,我想知道是否有可能从我的mktorrent命令输出到我的php应用程序直播?所以我可以看到创建洪流的状态? 此刻,exec只是坐在那里等待(有时超过一个小时:O)以便完成洪流。 php proc open命令是否做了类似的事情,或者我必须通过屏幕会话设置找出某种疯狂的ajax?

1 个答案:

答案 0 :(得分:2)

PHP在服务器上完全执行,呈现的页面将发送到您的浏览器。为了显示任何进度并让它更新,你必须反复从服务器请求它(或让服务器通过套接字或长轮询或其他东西发送进度,但想法是一样的)

您需要一种方法让服务器从命令和某种JS(AJAX)发出进度更新,以便与服务器通信以获取这些更新。

如果你可以让mktorrent命令输出进度到文件,你可以让php在页面加载时读取文件并将其回显给用户。您可以使用简单的meta refresh tag在几秒钟后刷新进度页面。

有关让PHP异步执行shell命令的信息,请参阅Asynchronous shell exec in PHP,这样您的PHP脚本就不必等待它完成,导致您的页面挂起,直到任务完成。