@pillson

CURL виснет с прокси php?

Не могу понять в чем причина, с прокси виснет скрипт, без прокси летает, логин и пароль верный, опции указал, менял их местами и перед открытием curl и после ch, и перед закрытием, не работает, ставил CURLOPT_FOLLOWLOCATION, true ); не помогло, что это может быть ?

function get_page( $url, $followlocation=false, $ref="", $type="GET", $params=array(), $timeout=30 ) {
	global $location;
	$all_headers = array();
	$cookie = dirname( __FILE__ ) . "/cookie.txt";
	if ( $ch = curl_init() ) {

	    curl_setopt( $ch, CURLOPT_PROXY, 'd37.ir.ru:75' );
	    curl_setopt( $ch, CURLOPT_PROXYUSERPWD, 'm77ea14:fc97amk' );
            curl_setopt( $ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTP );
	    curl_setopt( $ch, CURLOPT_PROXYAUTH, CURLAUTH_BASIC );
	    curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, 1);

		curl_setopt( $ch, CURLOPT_URL, $url );
		curl_setopt( $ch, CURLOPT_HEADER, false );
		curl_setopt( $ch, CURLOPT_FAILONERROR, false );
		curl_setopt( $ch, CURLOPT_HEADERFUNCTION, "get_location" );
		curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, false );
		
		if ( $type == "POST" ) {
			curl_setopt( $ch, CURLOPT_POST, 1 );
			curl_setopt( $ch, CURLOPT_POSTFIELDS, urldecode( http_build_query( $params ) ) );
		}
		curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
		if ( $followlocation ) {
			curl_setopt( $ch, CURLOPT_FOLLOWLOCATION, true );
		}
		curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT, $timeout );
		curl_setopt( $ch, CURLOPT_COOKIEJAR,  $cookie );
		curl_setopt( $ch, CURLOPT_COOKIEFILE, $cookie );
		curl_setopt( $ch, CURLOPT_REFERER, $ref );
		curl_setopt( $ch, CURLOPT_USERAGENT, 'Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.7.62 Version/11.01' );
	
                        
		$data = curl_exec( $ch );
		$url = curl_getinfo( $ch, CURLINFO_EFFECTIVE_URL );
		$code = curl_getinfo( $ch, CURLINFO_RESPONSE_CODE );
		curl_close( $ch );
		return array( "data"=>$data, "code"=>$code, "url"=>$url, "location"=>$location );
		sleep( rand ( 1, 3 ) ); // Рандомно усыпляем скрипт для предотвращения блокировок, от 1 до 3 секунд, тут вопрос скорости из-за картинок ...

	} else {
		return false;
	}
}
  • Вопрос задан
  • 66 просмотров
Пригласить эксперта
Ответы на вопрос 1
@pillson Автор вопроса
Вопрос решен, уточнил у провайдера, прокси все на https, поменял

curl_setopt( $ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTP );


на

curl_setopt( $ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTPS );


все заработало быстро
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы