2011-05-21 40 views
9

¿Es posible establecer la opción para volver a intentar los tiempos de espera en PHP cURL?reintento de cURL en PHP

Sé que puedo hacer esto codificando para volver a intentar la falla, solo preguntándome si hay alguna manera de hacerlo a través de una opción.

+0

[lisy de todas las opciones de enrollamiento] (http://php.net/manual/en/function.curl-setopt.php) – sdleihssirhc

+0

la mejor manera sería volver a intentar el fracaso – Ibu

Respuesta

2

No con las opciones actuales disponibles para la extensión PHP cURL. En la línea de comandos, creo que existe la opción --retry, pero eso no está expuesto a PHP.

12

puede utilizar el errno para volver a intentar la siguiente manera:

$curl = curl_init(); 
curl_setopt_array($curl, $options); 
$response = curl_exec($curl); 
$retry = 0; 
while(curl_errno($curl) == 28 && $retry < 3){ 
    $response = curl_exec($curl); 
    $retry++; 
} 

$error_codes=array(
    [1] => 'CURLE_UNSUPPORTED_PROTOCOL', 
    [2] => 'CURLE_FAILED_INIT', 
    [3] => 'CURLE_URL_MALFORMAT', 
    [4] => 'CURLE_URL_MALFORMAT_USER', 
    [5] => 'CURLE_COULDNT_RESOLVE_PROXY', 
    [6] => 'CURLE_COULDNT_RESOLVE_HOST', 
    [7] => 'CURLE_COULDNT_CONNECT', 
    [8] => 'CURLE_FTP_WEIRD_SERVER_REPLY', 
    [9] => 'CURLE_REMOTE_ACCESS_DENIED', 
    [11] => 'CURLE_FTP_WEIRD_PASS_REPLY', 
    [13] => 'CURLE_FTP_WEIRD_PASV_REPLY', 
    [14]=>'CURLE_FTP_WEIRD_227_FORMAT', 
    [15] => 'CURLE_FTP_CANT_GET_HOST', 
    [17] => 'CURLE_FTP_COULDNT_SET_TYPE', 
    [18] => 'CURLE_PARTIAL_FILE', 
    [19] => 'CURLE_FTP_COULDNT_RETR_FILE', 
    [21] => 'CURLE_QUOTE_ERROR', 
    [22] => 'CURLE_HTTP_RETURNED_ERROR', 
    [23] => 'CURLE_WRITE_ERROR', 
    [25] => 'CURLE_UPLOAD_FAILED', 
    [26] => 'CURLE_READ_ERROR', 
    [27] => 'CURLE_OUT_OF_MEMORY', 
    [28] => 'CURLE_OPERATION_TIMEDOUT', 
    ....