我正在尝试在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
}
`
在这个回调函数中,我创建了到目前为止累积的响应的缓冲区,并且一旦给出了所有响应,我想立即处理最终响应。问题是,我无法弄清楚如何知道这是最后一次回调,现在我可以继续处理完整的回复。
任何帮助都将受到高度赞赏!
答案 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);
}
}