跨持久连接的 popen 句柄


popen handle across persistent connections

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

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

}
一次

只有一个用户请求此内容。仅用于管理员后端。AJAX 的输出始终是"在 src 中进行安装"。

你不能

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