関数・クラス解説
curl_getinfo
version:PHP 4 >= 4.0.4, PHP 5, PHP 7 (公式)指定した伝送に関する情報を得る
公式リファレンス
書式
curl_getinfo ( resource $ch [, int $opt ] ) : mixed
説明
直近の転送に関する情報を取得します。
パラメータ
- 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。
- 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 接続などを含む、以前の転送にかかった合計時間(マイクロ秒)
返値
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 を設定した場合のみです)
注意
注意: この関数で収集した情報を、ハンドルを再利用するとそのまま保持されます。 つまり、この関数で内部的に統計情報を上書きしない限りは以前の情報が返されるということです。
更新履歴
バージョン | 説明 |
---|---|
7.3.0 | CURLINFO_CONTENT_LENGTH_DOWNLOAD_T, CURLINFO_CONTENT_LENGTH_UPLOAD_T, CURLINFO_HTTP_VERSION, CURLINFO_PROTOCOL, CURLINFO_PROXY_SSL_VERIFYRESULT, CURLINFO_SCHEME, CURLINFO_SIZE_DOWNLOAD_T, CURLINFO_SIZE_UPLOAD_T, CURLINFO_SPEED_DOWNLOAD_T, CURLINFO_SPEED_UPLOAD_T, CURLINFO_APPCONNECT_TIME_T, CURLINFO_CONNECT_TIME_T, CURLINFO_FILETIME_T, CURLINFO_NAMELOOKUP_TIME_T, CURLINFO_PRETRANSFER_TIME_T, CURLINFO_REDIRECT_TIME_T, CURLINFO_STARTTRANSFER_TIME_T, CURLINFO_TOTAL_TIME_T が追加されました。 |
サンプル
例1 curl_getinfo() の例
// 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 パラメータを使う例
// 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);
ワード検索
※入力キーワードが、関数名・説明文・タグに含まれるものを検索関数名アルファベット別
最終更新一覧
●stristr
大文字小文字を区別せず文字列を検索し、ヒット箇所以降(あるいは以前)の文字列を返却
●stripslashes
バックスラッシュでエスケープされた文字列から、バックスラッシュを取り除く
●stripos
大文字小文字を区別せずに文字列が最初に現れる位置を取得する
●stripcslashes
addcslashes() でクォートされた文字列をアンクォートする
●strip_tags
文字列から HTML と PHP のタグを除去して返却
●strcspn
指定した文字が最初に現れる位置を調べる
●strcoll
ロケールに基づいて2つの文字列を比較し同じか(あるいは大小)を判定する
●strcmp
2つの文字列を比較し同じか(あるいは大小)を判定する
●strchr
strstr() のエイリアス
●strcasecmp
2つの文字列を比較(大文字小文字を区別せず同じとみなす)
カテゴリー一覧
PHP の振る舞いの変更
音声フォーマットの操作
認証サービス
コマンドライン関連
圧縮およびアーカイブ
暗号
データベース関連
日付および時刻関連
ファイルシステム
自然言語および文字エンコーディング
画像処理および作成
メール関連
数学
テキスト以外の MIME 型
プロセス制御
その他の基本モジュール
その他のサービス
検索エンジン用の拡張モジュール
サーバー固有のモジュール
セッション関連
テキスト処理
変数・データ型関連
ウェブサービス
Windows 用のモジュール
XML 操作
GUI用の拡張モジュール