[英]Executing multiple exec() from PHP
情况:
我有一个PHP应用程序,需要从exec()
命令中获取一些输出。 exec()
命令在整个应用程序的不同位置上使用。
当用户在同一浏览器中打开多个页面时, exec()
命令总是顺序执行; 如果用户打开第二页,则第二页将在exec()
等待第一页的exec()
命令完成。 如果我在其他浏览器中或以隐身模式打开第二个页面,则不会发生此问题。
Example test code:
$exec = "notepad.exe"
$data = shell_exec($exec);
echo $data;
在浏览器中运行此代码时,浏览器等待记事本进程关闭。 当第二次同时运行脚本时,第二个记事本进程仅在第一个记事本关闭时启动,除非它是从其他浏览器运行的。
问题:如何从同一浏览器(在不同选项卡中)同时运行多个exec()
命令,同时仍然希望捕获输出。
在运行PHP 5.4.7的Apache 2.4上测试
问题是结合使用会话,如下所述: https : //bugs.php.net/bug.php?id=44942
解决方案:使用会话时,我们需要调用session_write_close();。 在运行任何exec()命令之前。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.