cURL 関数
PHP Manual

curl_getinfo

(PHP 4 >= 4.0.4, PHP 5, PHP 7)

curl_getinfo指定した伝送に関する情報を得る

説明

mixed curl_getinfo ( resource $ch [, int $opt ] )

直近の転送に関する情報を取得します。

パラメータ

ch

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

opt

これは、以下のいずれかの定数となります。

  • CURLINFO_EFFECTIVE_URL - 直近の有効な URL
  • CURLINFO_HTTP_CODE - 最後に受け取った HTTP コード
  • CURLINFO_FILETIME - ドキュメントを取得するのにかかった時間。 CURLOPT_FILETIME が有効な状態で用いる。 取得できなかった場合は -1
  • CURLINFO_TOTAL_TIME - 直近の伝送にかかった秒数
  • CURLINFO_NAMELOOKUP_TIME - 名前解決が完了するまでにかかった秒数
  • CURLINFO_CONNECT_TIME - 接続を確立するまでにかかった秒数
  • CURLINFO_PRETRANSFER_TIME - 開始からファイル伝送がはじまるまでにかかった秒数
  • CURLINFO_STARTTRANSFER_TIME - 最初のバイトの伝送がはじまるまでの秒数
  • CURLINFO_REDIRECT_COUNT - リダイレクト処理の回数 (CURLOPT_FOLLOWLOCATION オプションが有効な場合)
  • CURLINFO_REDIRECT_TIME - 伝送が始まるまでのリダイレクト処理の秒数 (CURLOPT_FOLLOWLOCATION オプションが有効な場合)
  • CURLINFO_REDIRECT_URL - CURLOPT_FOLLOWLOCATION オプションが無効な場合: 直近のトランザクションで見つかったリダイレクト先 URL。これを、次に手動でリクエストしなければいけません。 CURLOPT_FOLLOWLOCATION オプションが有効な場合: これは空になります。 この場合のリダイレクト先 URL は、CURLINFO_EFFECTIVE_URL となります。
  • CURLINFO_PRIMARY_IP - 直近の接続の IP アドレス
  • CURLINFO_PRIMARY_PORT - 直近の接続の接続先ポート
  • CURLINFO_LOCAL_IP - 直近の接続の接続元 IP アドレス
  • CURLINFO_LOCAL_PORT - 直近の接続の接続元ポート
  • CURLINFO_SIZE_UPLOAD - アップロードされたバイト数
  • CURLINFO_SIZE_DOWNLOAD - ダウンロードされたバイト数
  • CURLINFO_SPEED_DOWNLOAD - 平均のダウンロード速度
  • CURLINFO_SPEED_UPLOAD - 平均のアップロード速度
  • CURLINFO_HEADER_SIZE - 受信したヘッダのサイズ
  • CURLINFO_HEADER_OUT - 送信したリクエスト文字列。 これを動作させるには、curl_setopt() をコールする際に CURLINFO_HEADER_OUT オプションを使うようにしておく必要があります。
  • CURLINFO_REQUEST_SIZE - 発行されたリクエストのサイズ。現在は HTTP リクエストの場合のみ
  • CURLINFO_SSL_VERIFYRESULT - CURLOPT_SSL_VERIFYPEER を設定した際に要求される SSL 証明書の認証結果
  • CURLINFO_CONTENT_LENGTH_DOWNLOAD - ダウンロードされるサイズ。 Content-Length: フィールドの内容を取得する
  • CURLINFO_CONTENT_LENGTH_UPLOAD - アップロードされるサイズ。
  • CURLINFO_CONTENT_TYPE - 要求されたドキュメントの Content-Type:。 NULL は、サーバーが適切な Content-Type: ヘッダを返さなかったことを示す
  • CURLINFO_PRIVATE - この cURL ハンドルに関連づけられたプライベートデータ。 事前に curl_setopt()CURLOPT_PRIVATE オプションで設定したもの。
  • CURLINFO_RESPONSE_CODE - 直近のレスポンスコード。
  • CURLINFO_HTTP_CONNECTCODE - CONNECT のレスポンスコード。
  • CURLINFO_HTTPAUTH_AVAIL - 直前のレスポンスから判断する、利用可能な認証方式のビットマスク。
  • CURLINFO_PROXYAUTH_AVAIL - 直前のレスポンスから判断する、プロキシ認証方式のビットマスク。
  • CURLINFO_OS_ERRNO - 接続に失敗したときのエラー番号。OS やシステムによって異なります。
  • CURLINFO_NUM_CONNECTS - curl が直前の転送を実行するために要した接続数。
  • CURLINFO_SSL_ENGINES - サポートする OpenSSL 暗号エンジン。
  • CURLINFO_COOKIELIST - すべての既知のクッキー。
  • CURLINFO_FTP_ENTRY_PATH - FTP サーバーのエントリパス。
  • CURLINFO_APPCONNECT_TIME - リモートホストとの SSL/SSH 接続/ハンドシェイク が完了するまでに要した秒数。
  • CURLINFO_CERTINFO - TLS 証明書チェイン。
  • CURLINFO_CONDITION_UNMET - 時間の条件が満たされなかったことに関する情報。
  • CURLINFO_RTSP_CLIENT_CSEQ - 次の RTSP クライアントの CSeq。
  • CURLINFO_RTSP_CSEQ_RECV - 直前に受け取った CSeq。
  • CURLINFO_RTSP_SERVER_CSEQ - 次の RTSP サーバーの CSeq。
  • CURLINFO_RTSP_SESSION_ID - RTSP セッション ID。

返り値

opt を指定した場合は、その値を返します。 それ以外の場合は、以下の要素をもつ連想配列を返します (それぞれの要素が opt に対応します)。 失敗した場合は FALSE を返します。

プライベートデータはこの連想配列には含まれず、CURLINFO_PRIVATE オプションで個別に取得しなければいけないことに注意しましょう。

変更履歴

バージョン 説明
5.5.0 CURLINFO_RESPONSE_CODECURLINFO_HTTP_CONNECTCODECURLINFO_HTTPAUTH_AVAILCURLINFO_PROXYAUTH_AVAILCURLINFO_OS_ERRNOCURLINFO_NUM_CONNECTSCURLINFO_SSL_ENGINESCURLINFO_COOKIELISTCURLINFO_FTP_ENTRY_PATHCURLINFO_APPCONNECT_TIMECURLINFO_CONDITION_UNMETCURLINFO_RTSP_CLIENT_CSEQCURLINFO_RTSP_CSEQ_RECVCURLINFO_RTSP_SERVER_CSEQ および CURLINFO_RTSP_SESSION_ID が追加されました。
5.4.7 CURLINFO_PRIMARY_IPCURLINFO_PRIMARY_PORTCURLINFO_LOCAL_IP および CURLINFO_LOCAL_PORT が追加されました。
5.3.7 CURLINFO_REDIRECT_URL が追加されました。
5.3.0 CURLINFO_CERTINFO が追加されました。
5.2.4 CURLINFO_PRIVATE が追加されました。
5.1.3 CURLINFO_HEADER_OUT が追加されました。

例1 curl_getinfo() の例

<?php
// cURL ハンドルを作成します
$ch curl_init('http://www.example.com/');

// 実行します
curl_exec($ch);

// エラーが発生したかどうかを確認します
if (!curl_errno($ch)) {
  
$info curl_getinfo($ch);
  echo 
'Took '$info['total_time'], ' seconds to send a request to '$info['url'], "\n";
}

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

例2 curl_getinfo()opt パラメータを使う例

<?php
// cURL ハンドルを作成します
$ch curl_init('http://www.example.com/');

// 実行します
curl_exec($ch);

// HTTP ステータスコードを調べます
if (!curl_errno($ch)) {
  switch (
$http_code curl_getinfo($chCURLINFO_HTTP_CODE)) {
    case 
200:  # OK
      
break;
    default:
      echo 
'Unexpected HTTP code: '$http_code"\n";
  }
}

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

注意

注意:

この関数で収集した情報を、ハンドルを再利用するとそのまま保持されます。 つまり、この関数で内部的に統計情報を上書きしない限りは以前の情報が返されるということです。


cURL 関数
PHP Manual