我有一个计算终端程序,我需要使用 php 网页与之交互。我可以在 JAVA 中使用 getRuntime().exec(...) 执行此操作,然后创建读取和写入进程的管道,并且该进程将存在于请求之间。但我不确定它是否可以用 PHP 完成,因为我不认为 proc_open 在请求期间保持进程处于活动状态?
这是我正在创建的网页的流程。首先,用户将在网页上输入命令,该命令将被馈送到执行计算的终端程序,然后将答案返回给用户。我将对请求使用 AJAX,以便在不刷新页面的情况下返回答案。
现在我的问题是我需要在下一个请求上与相同的进程进行交互,而不是开始一个新的。这是因为终端程序有状态。那就是我可以像这样在其中设置变量-X = 5;
所以在我第一次通过 AJAX 调用程序时
X = 5;
并且返回给用户浏览器的程序的输出是 -
X = 5
然后在我的下一个 AJAX 请求中我通过
Y = X + 5;
然后程序应该输出
Y = 10
它被传递回用户浏览器。
但据我了解,proc_open 函数不维护请求之间的状态。我了解当服务器响应用户的请求时,该进程已关闭。它是否正确?如果是这样,有什么方法可以使用 PHP 做我需要做的事情吗?