如何为与不同PHP会话关联的请求创建http响应?

时间:2010-07-27 00:48:56

标签: php rest curl

是否可以为与不同PHP会话关联的请求创建http响应?如果是这样,怎么做?

我正在创建一种脚本语言,以便PHP开发人员更轻松地处理电话交互。我的应用程序接收电话,然后激活与这些呼叫关联的用户脚本。

脚本实时处理。由于我不知道脚本中的命令数量,因此我必须为每个命令创建和发送单独的REST响应,直到有人发出挂起。

有没有办法做到这一点,而不必停止当前功能,发送响应,然后在下次电话服务器向我发送请求时恢复脚本?

理想情况下,我希望保留当前的PHP函数,为每个http请求发送响应,而不必每次都停止...会卷曲 - 或者其他什么 - 帮助我吗?

提前致谢,

利奥

2 个答案:

答案 0 :(得分:0)

我希望我做对了你想要做的事,
好吧,如果您有所需的其他会话ID,只需使用session_id()函数来设置实际使用的会话,例如:

#Assuming url like www.example.com/?session_id=123456;
$current_session_id = session_id();
$desired_session_id = $_GET['session_id'];

session_id($desired_session_id); #that's where we switch to the desired session
var_dump($_SESSION); #will dump session with id 123456
session_id($current_session_id); #switching back to the previous session id

这应该有用,我相信我过去曾经使用过这样的东西,但请仔细检查一下。

答案 1 :(得分:0)

您可以使用multi-curl发送多个请求,但似乎需要按顺序发送命令。另一种选择是使用分叉,它会创建当前进程的副本。您可以检查您是“父”还是“子”过程。然后,“父”进程监视“子”进程。我已经完成了这项工作,最多只有50个子进程在1个父进程中运行。 http://php.net/manual/en/function.pcntl-fork.php

如果您只想发送命令,而不关心输出,只需使用exec函数即可。在下面的示例中,PHP不会等待响应或脚本完成。

exec("send_command.php > /dev/null &");