Задать вопрос
Lobochkin
@Lobochkin
PHP Bitrix Vue Laravel

Почему при curl запросе через разные proxy сервера выдает ошибку (5): Couldn't resolve proxy name?

Пытаюсь отпарсить сайт, через мой сервер curl уже не проходить, поэтому в curl я подставляю массив прокси серверов , сначала загрузка идет нормально а потом выдает
cURL error (5): Couldn't resolve proxy name
Warning: curl_errno(): supplied resource is not a valid cURL handle resource in /var/www/docs/site/curltest.php on line 30
function getCurlResult ($url) {
	global $arrProxy;
	$ch = curl_init();
	curl_setopt($ch, CURLOPT_URL, $url);
	curl_setopt($ch, CURLPROTO_HTTPS,1);
	curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
	curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
	curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1); 
	curl_setopt($ch, CURLOPT_PROXY, $arrProxy[0]);
	// curl_setopt($ch, CURLOPT_PROXYUSERPWD, 'user:password');
	curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
	curl_setopt($ch, CURLOPT_HEADER, 1);
	curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);// таймаут в секундах
	$htmltext = curl_exec($ch);
	curl_close($ch);

	while (strlen($htmltext) < 100) {
		echo "<h3>delete PROXY API!!!! " . $arrProxy[0] . " осталось "  . (count($arrProxy) - 1) . "</h3>";
		$arrProxy = array_slice($arrProxy, 1);
		$ch = curl_init();
		curl_setopt($ch, CURLOPT_URL, $url);
		curl_setopt($ch, CURLPROTO_HTTPS,1);
		curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
		curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
		curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1); 
		curl_setopt($ch, CURLOPT_PROXY, $arrProxy[0]);
		// curl_setopt($ch, CURLOPT_PROXYUSERPWD, 'user:password');
		curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
		curl_setopt($ch, CURLOPT_HEADER, 1);
		curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
		$htmltext = curl_exec($ch);
		if($errno = curl_errno($ch)) {
		    $error_message = curl_strerror($errno);
		    echo "cURL error ({$errno}):\n {$error_message}";
		}
		curl_close($ch);
		if (count($arrProxy) < 1) {
			echo "<h1>PROXY API адресса закончились!!!</h1>";
			exit;
		}		
	}
	
	//$htmltext = iconv("CP1251", "UTF-8", $htmltext);
	return $htmltext;
}
  • Вопрос задан
  • 718 просмотров
Подписаться 1 Простой 2 комментария
Решения вопроса 1
Lobochkin
@Lobochkin Автор вопроса
PHP Bitrix Vue Laravel
Нашел проблему изменив строку
curl_setopt($ch, CURLOPT_PROXY, $arrProxy[0]);
на
curl_setopt($ch, CURLOPT_PROXY, trim($arrProxy[0]));
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
dimonchik2013
@dimonchik2013
non progredi est regredi
закончились
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы