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
14-Jun-2009 10:40
14-Jun-2009 10:40
Jacques Manukyan
28-Dec-2007 04:43
28-Dec-2007 04: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.
