2017-05-06 2 views
0

PHP에서 리버스 프록시 서버를 개발하려고하고 있으며 HTTP 요청을 만들기 위해 CURL을 사용하고 있습니다.PHP 컬 응답 응답 최종 콜백

필자는 쓰기 콜백 기능을 구성하기 위해 CURLOPT_WRITEFUNCTION을 사용하고 있습니다. 이 콜백 함수

`

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

`

이 지금까지 축적 된 응답 버퍼를 생성하고, 한 번에 모든 응답이 제공되어, I 한번에 최종 응답을 처리 할. 문제는, 이것이 마지막 콜백임을 알 수있는 방법을 찾아 낼 수 없다는 것이며, 이제는 전체 응답을 처리 할 수 ​​있다는 것입니다.

도움이 될 것입니다!

답변

0

코드가 작성한 요청 수를 계산하고 수신 된 응답과 비교하면됩니다.

을 감안할 때 :

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

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

이 같은 것을 사용할 수 있습니다