2017-05-06 29 views
0

我想在PHP中開發一個反向代理服務器,並使用CURL來提出http請求。PHP捲曲寫入響應最終回調

我正在使用CURLOPT_WRITEFUNCTION配置我的寫回調函數。

`

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

`

在這個回調函數中,我創建了迄今已累計響應的緩衝區,一旦所有的反應已經給出了,我要馬上處理的最終響應。問題是,我無法弄清楚如何知道這是最後一次回調,現在我可以繼續處理完整回覆。

任何幫助將不勝感激!

回答

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); 
    } 
}