0

我正在尝试通过使用执行命令popen,然后通过 AJAX 打印出它的进度。我发现这篇文章非常有帮助,并且让 AJAX 到脚本交换工作正常。问题是每次test从 ajax 进行异步 GET 时,popen都会重复处理 on。如果我让 shell 只运行一次,那么句柄就不再有效。我不知道如何使 $handle 成为跨请求的持久性。

public function test()
{
      chdir('my dir');
      $handle = popen('make install 2>&1','r');
      echo fread($handle, 2096);


}

一次只会有一个用户请求这个....仅用于管理后端。AJAX 的输出始终是“在 src 中进行安装”。

4

1 回答 1

2

你不能那样做。您必须在后台运行“make install”过程(例如 via exec())并将其输出重定向到您在执行 AJAX 请求时可以读取的文件/管道。

于 2012-05-09T08:16:47.413 回答