Повторить тайм-аут CURL

Что лучше подходит для запроса зависания повторов, если есть тайм-аут?

Я придумал это решение, используя зло GOTO

retry:

$result = curlPost($ch, "something.php", $cookie, http_build_query($arg));

if (curl_errno($ch) == 28) {
 goto retry;
}

// Do something

В функции curlPost() существует

curl_setopt($curl, CURLOPT_TIMEOUT, 3);
1 ответ

Вы можете использовать цикл do-while.

$count = 0;
$max_tries = 5;
$success = true;
do {
 $result = curlPost($ch, "something.php", $cookie, http_build_query($arg));
 $count++;
 if($count >= $max_tries) {
 $success = false;
 break;
 }
}
while(curl_errno($ch) == 28);

if($success == false) {
 // If it got here it tried 5 times and still didn't get a result.
 // More code here for what you want to do...
}

licensed under cc by-sa 3.0 with attribution.