2010-10-22 17 views
2

J'utilise multi curl avec des proxies anonymes, et je veux marquer les proxies en fonction des performances et de l'emplacement etc après le retour de la poignée curl. J'ai essayé curl_getinfo() mais cela ne retourne pas d'information sur le proxy utilisé pour ce handle curl.PHP multi curl - savoir quel proxy a été utilisé pour un handle curl particulier

Des idées? J'ai pensé à peut-être un moyen d'identifier un handle particulier et de le stocker avec le proxy utilisé, puis quand le handle a déclenché et retourné via curl_multi_info_read() je peux rechercher le handle via le proxy. Je ne sais pas exactement quoi utiliser comme identifiant. Faire un vidage montre le handle comme ressource (20), mais pas sûr si c'est quelque chose que je peux compter dessus? Je suppose que s'il y avait quelque chose comme getOpt() serait idéal, mais je ne vois rien de tel pour une poignée de boucle de la recherche que j'ai faite.

Répondre

0

Je trouve une classe de boucle parallèle (par Pete Warden), qui transmet des données pour le multi-boucle en utilisant les éléments suivants ..

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

Lorsque le multi-boucle est fait, il est en mesure d'utiliser la poignée boucle pour conserver des informations via le tableau des demandes en attente. Si vous êtes intéressé par le multi-curl, consultez le cours, il met tout en place pour vous et est très personnalisable.

+0

Classe à: http://github.com/petewarden/ParallelCurl – Steffan

3

Vérifiez la dernière version de la bibliothèque MultiRequest. Là, vous pouvez faire quelque chose comme ceci:

$request = new MultiRequest_Request($url); 
$request->setCurlOption(CURLOPT_PROXY, $proxy); 
// ... 
$curlOptions = $request->getCurlOptions(); 
list($proxyIp, $proxyPort) = explode(':', $curlOptions[CURLOPT_PROXY]);