curl_strerror は PHP の cURL 拡張機能に含まれる関数で、指定された cURL エラーコードに対応する人間が読める形式の文字列説明を返します。この関数は、cURL 操作中に発生したエラーの詳細な説明を取得するのに役立ちます。
関数のシグネチャ:
string curl_strerror ( int $errornum )
主な特徴と使用方法:
- 機能:
- 指定された cURL エラーコードに対応する説明文字列を返します。
- エラーメッセージをログに記録したり、ユーザーに表示したりする際に有用です。
- パラメータ:
- $errornum: cURL エラーコード(CURLE_* 定数の値)
- 戻り値:
- エラーコードに対応する説明文字列
- 不明なエラーコードの場合は “Unknown error” を返す
- 使用例:
$ch = curl_init('https://example.com');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
if ($result === false) {
$errno = curl_errno($ch);
$error_message = curl_strerror($errno);
echo "cURL Error ({$errno}): {$error_message}";
}
curl_close($ch);
- 主な用途:
- cURL 操作のエラーハンドリング
- デバッグ情報の生成
- ユーザーフレンドリーなエラーメッセージの表示
- 注意点:
- この関数は PHP 5.5.0 以降で利用可能です。
- 返される文字列は英語で、ローカライズされていません。
- メリット:
- エラーの詳細な説明: 数値のエラーコードだけでなく、具体的な説明が得られます。
- デバッグの容易さ: エラーの原因をより簡単に特定できます。
- 一貫性: libcurl のエラーメッセージと一致するため、一貫性のあるエラー報告が可能です。
- 関連する関数:
- curl_errno(): 最後に実行された cURL 操作のエラー番号を返します。
- curl_error(): 最後に実行された cURL 操作のエラーメッセージを文字列で返します。
- エラーコードの例:
- CURLE_OK (0): エラーなし
- CURLE_URL_MALFORMAT (3): URL の形式が不正
- CURLE_COULDNT_CONNECT (7): リモートサーバーへの接続に失敗
- CURLE_OPERATION_TIMEDOUT (28): 操作がタイムアウト
- より詳細なエラーハンドリングの例:
$ch = curl_init('https://example.com');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
if ($result === false) {
$errno = curl_errno($ch);
$error_message = curl_strerror($errno);
$curl_info = curl_getinfo($ch);
error_log("cURL Error ({$errno}): {$error_message}");
error_log("cURL Info: " . print_r($curl_info, true));
// ユーザーフレンドリーなメッセージ
echo "申し訳ありません。サーバーとの通信中にエラーが発生しました。";
}
curl_close($ch);
curl_strerror は、cURL 操作のエラーハンドリングとデバッグを行う際に非常に有用な関数です。この関数を使用することで、開発者はより詳細なエラー情報を取得でき、問題の診断と解決を効率的に行うことができます。また、エンドユーザーに対してより意味のあるエラーメッセージを提供することも可能になります。