Не могу понять в чем причина, с прокси виснет скрипт, без прокси летает, логин и пароль верный, опции указал, менял их местами и перед открытием 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;
}
}