PHP multi curl - узнайте, какой прокси был использован для конкретной ручки curl - PullRequest
2 голосов
/ 23 октября 2010

Я использую multi curl с анонимными прокси и хочу пометить прокси в зависимости от производительности, местоположения и т. Д. После того, как возвращен дескриптор curl.Я пробовал curl_getinfo (), но это не возвращает информацию о прокси, используемом для этого дескриптора curl.

Есть идеи?Возможно, я подумал о способе идентификации конкретного дескриптора и сохранения его с использованием прокси, а затем, когда дескриптор сработал и вернулся через curl_multi_info_read (), я могу посмотреть дескриптор через прокси.Не уверен, что использовать в качестве идентификатора, хотя.Выполнение дампа показывает дескриптор как ресурс (20), но я не уверен, что это то, на что я могу положиться?

Я думаю, что было бы что-то вроде getOpt (), было бы идеально, но я не вижучто-нибудь в этом роде из-за проведенного мною исследования.

Ответы [ 2 ]

3 голосов
/ 28 декабря 2010

Проверьте последнюю версию библиотеки MultiRequest . Там вы можете сделать что-то вроде этого:

$request = new MultiRequest_Request($url);
$request->setCurlOption(CURLOPT_PROXY, $proxy);
// ...
$curlOptions = $request->getCurlOptions();
list($proxyIp, $proxyPort) = explode(':', $curlOptions[CURLOPT_PROXY]);
0 голосов
/ 26 октября 2010

Я нашел параллельный класс curl (от Pete Warden), который передает данные для multi-curl, используя следующую команду:

    $this->outstanding_requests[$ch] = array(
        'url' => $url,
        'callback' => $callback,
        'user_data' => $user_data,
        'proxy' => $proxy
    );

Когда мульти-скручивание выполнено, он может использовать дескриптор скручивания для хранения информации через массив ожидающих запросов. Если вы заинтересованы в multi-curl, ознакомьтесь с классом, он настраивает все для вас и очень настраиваем.

...