2010-03-25 2 views
1

(병렬로) 여러 사이트의 http 응답 헤더 (RollingCurl)를 가져온 웹 응용 프로그램을 작성한 다음이를 배열에 저장하고 JSON 형식으로 출력합니다.요청 된 URL과 연결된 응답 데이터를 아는 방법 (RollingCurl.php에서)?

일부 사이트는 새로운 위치로 리디렉션되기 때문에 "request_callback"함수의 $ info (array) 함수는 요청 된 URL이 리디렉션 된 URL ($ info [ 'url'])을 항상 포함하고 있습니다. 그러나 요청 된 URL을 배열 (@ $ info [ 'requested_url'])로 밀어 넣어 요청한 URL과 연결된 $ info (응답 데이터)를 알 수있는 방법은 무엇입니까? RollingCurl.php에서

$urls = array(
"http://google.com", 
"http://microsoft.com" 
    // more urls here 
); 

$json = array(); 
$rc = new RollingCurl("request_callback"); 
$rc->window_size = 20; 

foreach ($urls as $url) { 
    $request = new Request($url); 
    $rc->add($request); 
} 

$rc->execute(); 
echo json_encode($json); 
exit; 

function request_callback($response, $info) { 
     global $json; 
     $json['status'][] = $info; 
} 

는 // 조각 : 콜백 함수에서

// send the return values to the callback function. 
$callback = $this->callback; 
if (is_callable($callback)){ 
    $info[‘requested_url’] = **???** // How to get a requested url & push it into $info? 
    call_user_func($callback, $output, $info); 
} 

답변

0

에서, $ 정보 배열이 요청을 만드는 데 사용 curl_multi의 URL 인 'URL'키가 있어야합니다.

해당 배열의 항목 목록은 curl_getinfo에있는 PHP 설명서를 참조하십시오.