curl_getinfo()

1. 定义

该函数获取指定curl传输会话的信息。 成功时包含信息的数组,如果指定输出哪一项,则输出该项值的字符串形式。

2. 语法

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

3. 参数说明

参数 可选性 数据类型 描述
$ch 必需 资源类型 通过函数curl_init()打开的curl资源句柄
$opt 可选 整型 想要获取的CURLINFO_*常量

其中,$opt有以下可选值:

  • CURLINFO_EFFECTIVE_URL:最后一个有效的URL地址
  • CURLINFO_HTTP_CODE:最后收到的HTTP响应码
  • CURLINFO_FILETIME:获取远程文档的时间,获取失败则返回-1
  • CURLINFO_TOTAL_TIME:最后一次传输耗时
  • CURLINFO_NAMELOOKUP_TIME:名称解析耗时
  • CURLINFO_CONNECT_TIME:建立连接耗时
  • CURLINFO_PRETRANSFER_TIME:从建立连接到准备传输所用时间
  • CURLINFO_STARTTRANSFER_TIME:从建立连接到传输开始所用时间
  • CURLINFO_REDIRECT_TIME:在事务传输开始前,重定向所用时间
  • CURLINFO_SIZE_UPLOAD:上传数据量的总数量,以字节为单位
  • CURLINFO_SIZE_DOWNLOAD:下载数据量的总数量,以字节为单位
  • CURLINFO_SPEED_DOWNLOAD:平均下载速度
  • CURLINFO_SPEED_UPLOAD:平均上传速度
  • CURLINFO_HEADER_SIZE:header部分的大小
  • CURLINFO_HEADER_OUT:发送请求的字符串
  • CURLINFO_REQUEST_SIZE:在HTTP请求中有问题的请求的大小
  • CURLINFO_SSL_VERIFYRESULT:SSL证书验证请求的结果
  • CURLINFO_CONTENT_LENGTH_DOWNLOAD:下载内容长度
  • CURLINFO_CONTENT_LENGTH_UPLOAD:上传内容大小
  • CURLINFO_CONTENT_TYPE:下载内容的Content-Type:值,NULL表示服务器没有发送有效的Content-Type: header

4. 示例

<?php

// curl_getinfo()
// 获取指定curl传输会话的信息

$ch = curl_init();

$search = '极速教程 网尚科技';
$params = curl_escape($ch, $search);
$url = 'http://www.baidu.com/s?wd='.$params;// 将搜索关键字加在URL中,获取百度搜索结果

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_exec($ch);// 执行资源句柄,并返回获取的信息
$info = curl_getinfo($ch);
curl_close($ch);

print_r($info);
/* 输出:
Array
(
    [url] => http://www.baidu.com/s?wd=%E6%9E%81%E9%80%9F%E6%95%99%E7%A8%8B%20%E7%BD%91%E5%B0%9A%E7%A7%91%E6%8A%80
    [content_type] => text/html;charset=utf-8
    [http_code] => 200
    [header_size] => 1103
    [request_size] => 132
    [filetime] => -1
    [ssl_verify_result] => 0
    [redirect_count] => 0
    [total_time] => 0.451167
    [namelookup_time] => 0.004169
    [connect_time] => 0.04531
    [pretransfer_time] => 0.045457
    [size_upload] => 0
    [size_download] => 281058
    [speed_download] => 623188
    [speed_upload] => 0
    [download_content_length] => -1
    [upload_content_length] => -1
    [starttransfer_time] => 0.324439
    [redirect_time] => 0
    [redirect_url] =>
    [primary_ip] => 183.232.231.172
    [certinfo] => Array()
    [primary_port] => 80
    [local_ip] => 192.168.1.92
    [local_port] => 56348
    [http_version] => 2
    [protocol] => 1
    [ssl_verifyresult] => 0
    [scheme] => HTTP
    [appconnect_time_us] => 0
    [connect_time_us] => 45310
    [namelookup_time_us] => 4169
    [pretransfer_time_us] => 45457
    [redirect_time_us] => 0
    [starttransfer_time_us] => 324439
    [total_time_us] => 451167
)
 */