PHP curl写响应最终回调

时间:2017-05-06 14:00:28

标签: php curl reverse-proxy

我正在尝试在PHP中开发反向代理服务器,并使用CURL来发出http请求。

我正在使用CURLOPT_WRITEFUNCTION来配置我的写回调函数。

`

function curlReadCallback(&$param, $body)
     if ($this->_buffered) {
                        $this->_buffer .= $body;}
// process($this_buffer) // On final call, i want to call this 
}

`

在这个回调函数中,我创建了到目前为止累积的响应的缓冲区,并且一旦给出了所有响应,我想立即处理最终响应。问题是,我无法弄清楚如何知道这是最后一次回调,现在我可以继续处理完整的回复。

任何帮助都将受到高度赞赏!

1 个答案:

答案 0 :(得分:0)

您的代码看起来只需要计算它所做的请求数量,并与收到的回复进行比较。

假设:

$this->requestsSent = 10;  // set to however many requests you send
$this->responsesReceived = 0;

您可以使用以下内容:

function curlReadCallback(&$param, $body)
  $this->responsesReceived++;
  if ($this->_buffered) {
    $this->_buffer .= $body;
  }
  if ($this->responsesReceived == $this->requestsSent) {
    process($this->_buffer);
  }
}