Если у меня есть 2 прокси:запроса PHP Curl с использованием прокси с различными протоколами
$proxy1 = array('http', 'XXX.XXX.XXX.XXX','8080')
и $proxy2 = array('https','YYY.YYY.YYY.YYY','80')
И я запрашивающее: $url1="http://somesite-1.net"
и $url2="https://somesite-2.net"
Кода для INIT несколько завитка:
foreach ($urls as $url) {
// threads
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_AUTOREFERER, $_autoreferrer);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, $_follow_loc);
curl_setopt($ch, CURLOPT_MAXREDIRS, $_max_redirects);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $_connection_timeout); curl_setopt($ch, CURLOPT_TIMEOUT, $_curl_timeout);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLINFO_HTTP_CODE, true);
curl_setopt($ch, CURLOPT_PROXY, $this->conf->getProxyIP().":".$this->conf->getProxyPort()); //PROXY
curl_setopt($ch, CURLOPT_USERAGENT, $this->conf->getUserAgent());
if($referrer = $this->conf->getReferrer() !== false){ //REFERRER
curl_setopt($ch, CURLOPT_REFERER, $referrer);
}
$tasks[$url] = $ch;
curl_multi_add_handle($cmh, $ch);
}
Нужно ли устанавливать протокол прокси-протокола http или https для отправки запроса й? Потому что, когда я, проверяя прокси, используя сокеты, я получаю сообщение о том, что все нормально и прокси работает. Но когда я запрашиваю контент, используя cURL, я получаю контент не от всех прокси. Я думаю, что проблема связана с не установленным протоколом прокси. Я думаю, что мне нужно установить некоторый параметр в cURL, но не знаю, что именно.
Это мой класс, вы можете Referer это: https://github.com/phpjungle/iHttp/ – PHPJungle
См метод __optSets(), строка: 282 – PHPJungle
О, спасибо. Я проверю его. Постскриптум красивая фотография профиля – LINKeRxUA