我正在尝试使用 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 请求时可以从中读取的文件/管道。