Я пишу веб-приложение, которое захватывает ( параллельно ) заголовки ответа http от нескольких сайтов (с RollingCurl ), затем сохраняет его в массиве и в конце выводит его в формате JSON.
Поскольку некоторые сайты перенаправляют на новые места, функция $ info (массив) в функции «request_callback» всегда содержит URL ($ info [‘url’]), куда был перенаправлен запрошенный URL, и это вполне ожидаемо.
Но как вставить запрошенный URL в массив (@ $ info [‘required_url’]), чтобы узнать, какой $ info (данные ответа) связан с запрошенным URL?
$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;
}
// фрагмент из RollingCurl.php :
// 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);
}