pthon
@pthon

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

Здравствуйте!
Почему результат функции curl_exec с прокси всегда false?
Или срабатывает очень редко
UPD: Не работает с прокси, которых 8000 порт.
UPD2: Нет, всё-же работает со всеми, но не всегда
Код:
global $proxy;
    $proxyRand = rand(0, count($proxy) - 1);
    $proxySplit = preg_split("~:~", $proxy[$proxyRand]);
    $proxyCheck = curl_init('https://yandex.ru');
    curl_setopt($proxyCheck, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($proxyCheck, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($proxyCheck, CURLOPT_HEADER, false);
    curl_setopt($proxyCheck, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($proxyCheck, CURLOPT_PROXY, $proxySplit[0]);
    curl_setopt($proxyCheck, CURLOPT_PROXYPORT, $proxySplit[1]);
    if ($proxySplit[2] != null and $proxySplit[3] != null) {
        curl_setopt($proxyCheck, CURLOPT_PROXYUSERPWD, $proxySplit[2].$proxySplit[3]);
    }
    $proxyCheckExec = curl_exec($proxyCheck);
    if ($proxyCheckExec) {
        curl_close($proxyCheck);
        print("valid");
        die("Stopped");
        if ($proxySplit[2] != null and $proxySplit[3] != null) {
            return ['ip_port' => $proxySplit[0].':'.$proxySplit[1], 'user_pass' => $proxySplit[2].":".$proxySplit[3]];
        } else {
            return ['ip_port' => $proxySplit[0].':'.$proxySplit[1]];
        }

    }
  • Вопрос задан
  • 80 просмотров
Решения вопроса 1
pthon
@pthon Автор вопроса
Проблема была в лишнем пробеле в прокси-листе
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
Скорее уж тогда так:
global $proxy;
    $proxyRand = rand(0, count($proxy) - 1);
    $proxySplit = preg_split("~:~", $proxy[$proxyRand]);
    $proxyCheck = curl_init('https://yandex.ru');
    curl_setopt($proxyCheck, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($proxyCheck, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($proxyCheck, CURLOPT_HEADER, false);
    curl_setopt($proxyCheck, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($proxyCheck, CURLOPT_PROXY, $proxySplit[0]);
    curl_setopt($proxyCheck, CURLOPT_PROXYPORT, $proxySplit[1]);
    if (!empty($proxySplit[2]) AND !empty($proxySplit[3])) {
        curl_setopt($proxyCheck, CURLOPT_PROXYUSERPWD, $proxySplit[2].':'.$proxySplit[3]);
    }
    if (!$proxyCheckExec = curl_exec($proxyCheck)) {
        curl_close($proxyCheck);
        print("valid");
        die("Stopped");
        if (!empty($proxySplit[2]) AND !empty($proxySplit[3])) {
            return ['ip_port' => $proxySplit[0].':'.$proxySplit[1], 'user_pass' => $proxySplit[2].":".$proxySplit[3]];
        } else {
            return ['ip_port' => $proxySplit[0].':'.$proxySplit[1]];
        }
    }
    else {
        die(curl_error($proxyCheck));
    }
Ответ написан
Ваш ответ на вопрос

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

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