PHPのcurl_getinfo関数:cURLセッションの情報を取得する

PHP

PHPでcURLを使用してHTTPリクエストを送信する際、リクエストの詳細やレスポンスの情報を取得する必要がある場合があります。このような場合に便利な関数がcurl_getinfoです。この関数は、cURLセッションに関する詳細な情報を取得するために使用されます。

基本的な使い方

curl_getinfo関数は、以下のように使用します:

$info = curl_getinfo($ch, $opt);

ここで、以下の引数が必要です:

  • $ch: cURLハンドル(curl_initで初期化されたもの)。
  • $opt: 取得したい情報のオプション(オプション)。

利用可能なオプション

curl_getinfo関数では、以下のようなオプションを使用して様々な情報を取得できます。

オプション説明
CURLINFO_EFFECTIVE_URLリクエストされたURL
CURLINFO_HTTP_CODEHTTPステータスコード
CURLINFO_FILETIMEファイルの最後の変更時刻
CURLINFO_TOTAL_TIMEリクエストの全体的な時間
CURLINFO_NAMELOOKUP_TIMEDNS解決時間
CURLINFO_CONNECT_TIME接続時間
CURLINFO_PRETRANSFER_TIME接続後、データ転送開始までの時間
CURLINFO_STARTTRANSFER_TIMEデータ転送開始時間
CURLINFO_REDIRECT_COUNTリダイレクト回数
CURLINFO_REDIRECT_TIMEリダイレクト時間
CURLINFO_SIZE_UPLOADアップロードされたデータサイズ
CURLINFO_SIZE_DOWNLOADダウンロードされたデータサイズ
CURLINFO_SPEED_DOWNLOADダウンロード速度
CURLINFO_SPEED_UPLOADアップロード速度
CURLINFO_CONTENT_LENGTH_DOWNLOADダウンロードされたコンテンツの長さ
CURLINFO_CONTENT_LENGTH_UPLOADアップロードされたコンテンツの長さ

例:cURLセッションの情報を取得する

以下は、cURLセッションの情報を取得する例です:

$ch = curl_init('http://example.com');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, true);

$response = curl_exec($ch);

if (curl_errno($ch)) {
    echo 'cURL Error: ' . curl_error($ch);
} else {
    $info = curl_getinfo($ch);
    
    echo "HTTP Code: " . $info['http_code'] . "\n";
    echo "Effective URL: " . $info['url'] . "\n";
    echo "Total Time: " . $info['total_time'] . " seconds\n";
    echo "Download Size: " . $info['size_download'] . " bytes\n";
}

curl_close($ch);

このコードは、http://example.comへのリクエストを送信し、HTTPステータスコード、リクエストされたURL、全体的な時間、ダウンロードサイズなどを表示します。

注意点

  • エラー処理: 常にcurl_errnoやcurl_errorを使用してエラーをチェックすることが重要です。
  • オプションの指定: 必要な情報のみを取得するために、適切なオプションを指定することが重要です。

まとめ

curl_getinfo関数は、cURLセッションに関する詳細な情報を取得するための強力なツールです。リクエストのパフォーマンスやレスポンスの詳細を確認するために非常に便利です。適切なオプションを使用することで、必要な情報を効率的に取得することができます。

タイトルとURLをコピーしました