3

我正在使用 ubuntu 和 mktorrent,我想知道是否可以将 mktorrent 命令的输出实时传输到我的 php 应用程序?所以我可以查看创建种子的状态吗?目前,exec只需坐在那里等待(有时需要一个多小时:O)以完成 torrent 制作。php proc open 命令是否执行与此类似的操作,还是我必须通过屏幕会话设置找出某种疯狂的 ajax?

4

1 回答 1

2

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

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

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

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

于 2012-12-01T07:25:56.577 回答