curl_getinfo
(PHP 4 >= 4.0.4, PHP 5, PHP 7)
curl_getinfo — 指定した伝送に関する情報を得る
パラメータ
-
ch -
curl_init() が返す cURL ハンドル。
-
opt -
これは、以下のいずれかの定数となります。
-
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。
-
返り値
opt を指定した場合は、その値を返します。
それ以外の場合は、以下の要素をもつ連想配列を返します
(それぞれの要素が opt に対応します)。
失敗した場合は 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 オプションで個別に取得しなければいけないことに注意しましょう。
変更履歴
| バージョン | 説明 |
|---|---|
| 5.5.0 |
CURLINFO_RESPONSE_CODE、
CURLINFO_HTTP_CONNECTCODE、
CURLINFO_HTTPAUTH_AVAIL、
CURLINFO_PROXYAUTH_AVAIL、
CURLINFO_OS_ERRNO、
CURLINFO_NUM_CONNECTS、
CURLINFO_SSL_ENGINES、
CURLINFO_COOKIELIST、
CURLINFO_FTP_ENTRY_PATH、
CURLINFO_APPCONNECT_TIME、
CURLINFO_CONDITION_UNMET、
CURLINFO_RTSP_CLIENT_CSEQ、
CURLINFO_RTSP_CSEQ_RECV、
CURLINFO_RTSP_SERVER_CSEQ および
CURLINFO_RTSP_SESSION_ID が追加されました。
|
| 5.4.7 |
CURLINFO_PRIMARY_IP、
CURLINFO_PRIMARY_PORT、
CURLINFO_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($ch, CURLINFO_HTTP_CODE)) {
case 200: # OK
break;
default:
echo 'Unexpected HTTP code: ', $http_code, "\n";
}
}
// ハンドルを閉じます
curl_close($ch);
?>
注意
注意:
この関数で収集した情報を、ハンドルを再利用するとそのまま保持されます。 つまり、この関数で内部的に統計情報を上書きしない限りは以前の情報が返されるということです。