@deepprod

Почему curl не работает через прокси?

Здравствуйте, вот код функции:

function post($url = null, $params = null, $proxy = null, $proxy_userpwd = null)
{
    $ch = curl_init();
    
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HEADER, 1);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTP);
    
    if (isset($params['params'])) {
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $params['params']);
    }
    
    if (isset($params['headers'])) {
        curl_setopt($ch, CURLOPT_HTTPHEADER, $params['headers']);
    }
    
    if (isset($params['cookies'])) {
        curl_setopt($ch, CURLOPT_COOKIE, $params['cookies']);
    }
    
    if ($proxy) {
        curl_setopt($ch, CURLOPT_PROXY, $proxy);
        
        if ($proxy_userpwd) {
            curl_setopt($ch, CURLOPT_PROXYUSERPWD, $proxy_userpwd);
        }
    }
    
    $result         = curl_exec($ch);
    $result_explode = explode("\r\n\r\n", $result);
    
    $headers = ((isset($result_explode[0])) ? $result_explode[0] . "\r\n" : '') . '' . ((isset($result_explode[1])) ? $result_explode[1] : '');
    $content = $result_explode[count($result_explode) - 1];
    
    
    preg_match_all('|Set-Cookie: (.*);|U', $headers, $parse_cookies);
    
    $cookies = implode(';', $parse_cookies[1]);
    
    curl_close($ch);
    
    return array(
        'headers' => $headers,
        'cookies' => $cookies,
        'content' => $content
    );
}


Когда указываю прокси то он не работает, без них все отлично работает. Почему? Прокси точно рабочие.
  • Вопрос задан
  • 125 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

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