我正在尝试使用popen
执行命令,然后通过AJAX打印出它的进度。我发现这个post非常有帮助,并使AJAX脚本交换工作正常。问题是每次从ajax到test
的异步GET时,都会重复popen
上的句柄。如果我只运行一次shell,那么句柄不再有效。我无法弄清楚如何让$ handle成为持久的请求。
public function test()
{
chdir('my dir');
$handle = popen('make install 2>&1','r');
echo fread($handle, 2096);
}
一次只会有一个用户请求此....仅用于管理员后端的事情。 AJAX的输出始终是“在src中安装”。
答案 0 :(得分:2)
你做不到。您必须在后台运行'make install'进程(例如,通过exec()
)并将其输出重定向到您可以在执行AJAX请求时读取的文件/管道。