PHPのお勉強!

PHP TOP

curl_error

(PHP 4 >= 4.0.3, PHP 5, PHP 7, PHP 8)

curl_error現在のセッションに関する直近のエラー文字列を返す

説明

curl_error(CurlHandle $handle): string

直近の cURL 操作に関するエラーメッセージをクリアテキストで返します。

パラメータ

handle

curl_init() が返す cURL ハンドル。

戻り値

エラーメッセージ、あるいはエラーが発生しなかった場合は '' (空文字) を返します。

変更履歴

バージョン 説明
8.0.0 handleCurlHandle クラスのインスタンスを期待するようになりました。 これより前のバージョンでは、resource を期待していました。

例1 curl_error() の例

<?php
// 存在しない場所への curl ハンドルを作成します
$ch = curl_init('http://404.php.net/');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

if(
curl_exec($ch) === false)
{
echo
'Curl error: ' . curl_error($ch);
}
else
{
echo
'Operation completed without any errors';
}

// ハンドルを閉じます
curl_close($ch);
?>

参考

add a note

User Contributed Notes 4 notes

up
64
patrick at ibuildings dot nl
11 years ago
If you want to fetch the error message, make sure you fetch it before you close the current cURL session or the error message will be reset to an empty string.
up
28
paul at paulmcgarry dot com
16 years ago
For a 404 response to actually trigger an error as the example seems to be trying to demonstrate the following option should be set:

curl_setopt($ch,CURLOPT_FAILONERROR,true);

As per http://curl.haxx.se/libcurl/c/libcurl-errors.html

CURLE_HTTP_RETURNED_ERROR (22)
This is returned if CURLOPT_FAILONERROR is set TRUE and the HTTP server returns an error code that is >= 400. (This error code was formerly known as CURLE_HTTP_NOT_FOUND.)
up
8
Anonymous
3 years ago
If you're using curl_multi and there's an error, curl_error() will remain empty until you've called curl_multi_info_read(). That function "pumps" the information inside the curl libraries to the point where curl_error() will return a useful string.

This should really be added to the documentation, because it's not at all obvious.
up
7
anrdaemon at freemail dot ru
5 years ago
curl_error is not a textual representation of curl_errno.
It's an actual error *message*.
If you want textual representation of error *code*, look for curl_strerror.
To Top