Note that you can detect errors using curl_multi_info_read() in the curl_multi_exec() loop that don't show up later using curl_errno(). This seems particularly true of connection errors.
curl_errno
(PHP 4 >= 4.0.3, PHP 5)
curl_errno — 直近のエラー番号を返す
説明
int curl_errno
( resource $ch
)
直近の cURL 処理に関するエラー番号を返します。
返り値
エラー番号を返します。エラーが発生しない場合、 0 (ゼロ) を返します。
例
例1 curl_errno() の例
<?php
// 存在しない場所への curl ハンドルを作成します
$ch = curl_init('http://404.php.net/');
// 実行します
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_exec($ch);
// エラーが発生したかどうかを確認します
if(curl_errno($ch))
{
echo 'Curl error: ' . curl_error($ch);
}
// ハンドルを閉じます
curl_close($ch);
?>
curl_errno
bozo_z_clown at yahoo dot com
15-Jun-2009 07:40
15-Jun-2009 07:40
Jacques Manukyan
29-Dec-2007 01:43
29-Dec-2007 01:43
The error codes come directly from the curl source code. Specifically, look at the curl.h file and it will tell you exactly what each returned code does.
Most of these codes are cryptic but at least you can get a clue as to what the errors are.
Here is a quick snippet of what the errors in the curl.h look like:
CURLE_OK = 0,
CURLE_UNSUPPORTED_PROTOCOL, /* 1 */
CURLE_FAILED_INIT, /* 2 */
CURLE_URL_MALFORMAT, /* 3 */
CURLE_URL_MALFORMAT_USER, /* 4 - NOT USED */
CURLE_COULDNT_RESOLVE_PROXY, /* 5 */
CURLE_COULDNT_RESOLVE_HOST, /* 6 */
CURLE_COULDNT_CONNECT, /* 7 */
CURLE_FTP_WEIRD_SERVER_REPLY, /* 8 */
Note that code 0 means its not an error, it means success.
