Php curl запрос через прокси с авторизацией

9024
04 сентября 2017, 07:17

Помогите, кто знает, вот функция:

function curl_exec_follow($url) {
    $agent = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; rv:1.7.3) Gecko/20041001 Firefox/0.10.1';
    // Some websites check referrer
    $host = parse_url($url, PHP_URL_HOST);
    $scheme = parse_url($url, PHP_URL_SCHEME);
    $referrer = $scheme . '://' . $host;
    $ch = curl_init();
    $curl_defaults = array(
        CURLOPT_HEADER => 0,
        CURLOPT_FOLLOWLOCATION => true,
        CURLOPT_RETURNTRANSFER => true,
    );
    curl_setopt_array($ch, $curl_defaults);
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_USERAGENT, $agent);
    curl_setopt($ch, CURLOPT_REFERER, $referrer);
    curl_setopt($curl, CURLOPT_PROXYTYPE,CURLPROXY_HTTP);
    curl_setopt($ch,CURLOPT_TIMEOUT,30);
    curl_setopt($ch, CURLOPT_PROXY,"xxx:xxx");
    curl_setopt($ch,CURLOPT_HTTPPROXYTUNNEL,0);
    curl_setopt($ch, CURLOPT_PROXYUSERPWD,"xxx:xxx");
    curl_setopt($ch, CURLOPT_PROXYAUTH,CURLAUTH_ANY);
    curl_setopt($ch, CURLOPT_FRESH_CONNECT,true);
    curl_setopt($ch, CURLOPT_MAXREDIRS, 5);
    if ( !file_exists('cookie.txt') || !is_writable('cookie.txt') ) {
        echo 'Cookie file is missing or not writable.';
        exit;
    }
    curl_setopt($ch, CURLOPT_COOKIESESSION, 0);
    curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');
    curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
    curl_setopt($ch,CURLOPT_ENCODING, "");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
    curl_setopt($ch,CURLOPT_LOW_SPEED_LIMIT, 1);
    curl_setopt($ch,CURLOPT_LOW_SPEED_TIME, 10);
    $content = curl_exec($ch);
    $code = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    if ( $code != '200' ) echo 'http error code: ' . $code . ' error:' . .curl_error($ch);
    curl_close($ch);
    return $content;
}

Когда вызываю ее без прокси, всё работает. Когда пробовал работать с бесплатными прокси без авторизации - редко, но иногда работало. Решил, что проблема в том, что они бесплатные и купил платный прокси с авторизацией. При вызове функции curl_error($ch) возвращает ошибку Failed to connect to xxxx port xxxx: Connection refused

Кто знает, помогите пожалуйста) у меня уже закончились варианты(

READ ALSO
Загрузить PDF из php rest api

Загрузить PDF из php rest api

php rest api генерирует PDF в виде blob, как получить файл на фронтенде без сохранения на сервереМое решение

612
Wordpress. Вставка html кода в поле виджета

Wordpress. Вставка html кода в поле виджета

Решил написать свой виджет для wordpress, но столкнулся с проблемойСтандартные поля типа text/textarea при сохранении удаляют все html тэги

550
SMTP почта с Phpmailer

SMTP почта с Phpmailer

session_cache_limiter('nocache'); header('Expires: 'gmdate('r', 0));

686
Symfony 3, join двух таблиц

Symfony 3, join двух таблиц

Здравствуйте! Мне нужно соединить две таблици и посчитать при этом колличество сообщений у каждого пользователя

552