cURL в PHP - простенький вопрос

программирование php proxy curl

foreach....
{
......
.......
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_PROXY, $ip); // Проходит через прокси!
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "?id=".$id."&rating=".$rating);

$result = curl_exec($ch);
curl_close($ch);
....
}

как сделать, что бы когда ответа от прокси сервера нет, курл закончил данный сеанс и начал следующий с другим ip прокси?

Примечание:
Стих - да нет, по кругу не надо...

Epsiloncool - это можно попробывать

Примечание:
Тоже хочу найти, а какой функцией пользовался для вычисления пинга? Microtime?
Ответы:
$proxies = array()...
$c_proxy = 0;
$data = "";
while ($data === false)
{
  ...
  curl_setopt($ch, CURLOPT_PROXY, $proxies[$c_proxy]);
  ...
  $c_proxy++;
  if ($c_proxy >= count($proxies))
     $c_proxy=0;
  $data = curl_exec($ch);
}
Нужно задать таймаут опцией CURLOPT_TIMEOUT и после exec проверять код ошибки функцией curl_errno(). Коды ошибок можно посмотреть тут
По ссылке вы найдете скрипты для проверки проксей, проверит и соску 5 и хттп
подобную проблему решал отсевом проксей, т.е. есть пара скриптов которые через cron запускаются регулярно
1) Первый парсит кучу страниц на которых обновляются прокси
2) Второй тестируют скорость и тип прокси, т.е. в табличке MySQL можно сделать выборку с  сортировкой по пингу и дате последней проверки.
>>а какой функцией пользовался для вычисления пинга? Microtime?


13 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.