curl_getinfo
(PHP 4 >= 4.0.4, PHP 5, PHP 7)
curl_getinfo — 指定した伝送に関する情報を得る
パラメータ
handle
- curl_init() が返す cURL ハンドル。
option
- これは、以下のいずれかの定数となります。
-
CURLINFO_EFFECTIVE_URL
- 直近の有効な URL -
CURLINFO_HTTP_CODE
- 最後に受け取った HTTP コード。PHP 5.5.0とcURL 7.10.8以降ではCURLINFO_RESPONSE_CODE
の別名になりました。 -
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。 -
CURLINFO_CONTENT_LENGTH_DOWNLOAD_T
- ダウンロードの content-length の値。これはContent-Type:
フィールドから読み取った値です。-1 はサイズが不明であることを示します。 -
CURLINFO_CONTENT_LENGTH_UPLOAD_T
- 指定されたアップロードのサイズ。-1 はサイズが不明であることを示します。 -
CURLINFO_HTTP_VERSION
- 直近のHTTP接続で使われたバージョン。返される値は、CURL_HTTP_VERSION_*
で定義されたうちのひとつです。バージョンが特定できない場合は、0 が返されます。 -
CURLINFO_PROTOCOL
- 直近のHTTP接続で使われたプロトコル。返される値は、CURLPROTO_*
で定義されたうちのひとつです。 -
CURLINFO_PROXY_SSL_VERIFYRESULT
- (CURLOPT_PROXY_SSL_VERIFYPEER
オプションを使って) リクエストされた証明書の検証結果です。 HTTPS プロキシを使った場合にのみ有効です。 -
CURLINFO_SCHEME
- 直近の接続で使われたURLスキーム -
CURLINFO_SIZE_DOWNLOAD_T
- ダウンロードした合計のバイト数。この数値は直近の転送のみの値です。新しい転送が行われるたびにリセットされます。 -
CURLINFO_SIZE_UPLOAD_T
- アップロードされた合計サイズ(バイト単位) -
CURLINFO_SPEED_DOWNLOAD_T
- ダウンロードが完了した際にcurlが計測した、平均ダウンロード速度(バイト/毎秒) -
CURLINFO_SPEED_UPLOAD_T
- アップロードが完了した際にcurlが計測した、平均アップロード速度(バイト/毎秒) -
CURLINFO_APPCONNECT_TIME_T
- リモートホストと SSL/SSH の接続/ハンドシェイクを開始してから完了するまでにかかった時間 (マイクロ秒) -
CURLINFO_CONNECT_TIME_T
- リモートホスト(またはプロキシ) と接続を開始して、完了するまでにかかった合計時間(マイクロ秒) -
CURLINFO_FILETIME_T
- 文書を取得したリモートの時間(Unixタイムスタンプ)。これはCURLINFO_FILETIME
の代替であり、32ビットのタイムスタンプの範囲から外れた日付を32ビットのシステムで変数に展開することができます。 -
CURLINFO_NAMELOOKUP_TIME_T
- 名前解決が完了するまでにかかった時間(マイクロ秒) -
CURLINFO_PRETRANSFER_TIME_T
- ファイルの転送が始まるまでにかかった時間(マイクロ秒) -
CURLINFO_REDIRECT_TIME_T
- リダイレクトのステップ全てにかかった合計時間(マイクロ秒)。これには、名前解決や接続、事前の転送や最後のトランザクションが開始されるまでの転送処理を含みます。 -
CURLINFO_STARTTRANSFER_TIME_T
- 最初のバイトを受信するまでにかかった時間(マイクロ秒) -
CURLINFO_TOTAL_TIME_T
- 名前解決, TCP 接続などを含む、以前の転送にかかった合計時間(マイクロ秒)
-
返り値
option
を指定した場合は、その値を返します。
それ以外の場合は、以下の要素をもつ連想配列を返します
(それぞれの要素が option
に対応します)。
失敗した場合は false
を返します。
- "url"
- "content_type"
- "http_code"
- "header_size"
- "request_size"
- "filetime"
- "ssl_verify_result"
- "redirect_count"
- "total_time"
- "namelookup_time"
- "connect_time"
- "pretransfer_time"
- "size_upload"
- "size_download"
- "speed_download"
- "speed_upload"
- "download_content_length"
- "upload_content_length"
- "starttransfer_time"
- "redirect_time"
- "certinfo"
- "primary_ip"
- "primary_port"
- "local_ip"
- "local_port"
- "redirect_url"
- "request_header" (これが設定されるのは、事前に curl_setopt() をコールしたときに
CURLINFO_HEADER_OUT
を設定した場合のみです)
プライベートデータはこの連想配列には含まれず、CURLINFO_PRIVATE
オプションで個別に取得しなければいけないことに注意しましょう。
変更履歴
バージョン | 説明 |
---|---|
8.0.0 | handle は CurlHandle クラスのインスタンスを期待するようになりました。
これより前のバージョンでは、resource を期待していました。 |
8.0.0 | option は nullable になりました。
これより前のバージョンでは、デフォルト値は |
7.3.0 | CURLINFO_CONTENT_LENGTH_DOWNLOAD_T ,
|
例
例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() で option
パラメータを使う例
<?php// cURL ハンドルを作成します$ch = curl_init('http://www.example.com/');// 実行しますcurl_exec($ch);// HTTP ステータスコードを調べますif (!curl_errno($ch)) { switch ($http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE)) { case 200: # OK break; default: echo 'Unexpected HTTP code: ', $http_code, "\n"; }}// ハンドルを閉じますcurl_close($ch);?>
注意
注意:
この関数で収集した情報を、ハンドルを再利用するとそのまま保持されます。 つまり、この関数で内部的に統計情報を上書きしない限りは以前の情報が返されるということです。