curl_getinfo
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
- 上次有效的网址
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
禁用选项:在最近的交易中找到的重定向网址,应该在下一步手动请求。CURLOPT_FOLLOWLOCATION
启用该选项:这是空的。这种情况下的重定向网址可在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
- 发送请求字符串。为此,CURLINFO_HEADER_OUT
通过调用curl_setopt()将选项添加到句柄中
CURLINFO_REQUEST_SIZE
- 已发出请求的总大小,目前仅用于HTTP请求
CURLINFO_SSL_VERIFYRESULT
- 通过设置请求的SSL认证验证结果CURLOPT_SSL_VERIFYPEER
CURLINFO_CONTENT_LENGTH_DOWNLOAD
- 下载的内容长度,从Content-Length:
字段中 读取
CURLINFO_CONTENT_LENGTH_UPLOAD
- 指定的上传大小
CURLINFO_CONTENT_TYPE
-内容类型:
所请求的文件。NULL表示服务器未发送有效的Content-Type:
标头
CURLINFO_PRIVATE
- 与此cURL句柄相关联的专用数据,以前使用CURLOPT_PRIVATE
curl_setopt()的选项 设置
CURLINFO_RESPONSE_CODE
- 最后一个响应代码
CURLINFO_HTTP_CONNECTCODE
- CONNECT响应代码
CURLINFO_HTTPAUTH_AVAIL
- 根据先前的响应指示可用的认证方法的位掩码
CURLINFO_PROXYAUTH_AVAIL
- 根据先前的响应,指示可用的代理认证方法的位掩码
CURLINFO_OS_ERRNO
- 来自连接失败的Errno。该数字是OS和系统特定的。
CURLINFO_NUM_CONNECTS
- 卷曲必须创建的连接数量才能实现前一次传输
CURLINFO_SSL_ENGINES
- 支持OpenSSL加密引擎
CURLINFO_COOKIELIST
- 所有已知的cookies
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”(只有
CURLINFO_HEADER_OUT
在前一次调用curl_setopt()时才设置)
请注意,私人数据不包含在关联数组中,必须单独使用该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。 |
例子
Example #1 curl
_
getinfo() example
<?php
// Create a cURL handle
$ch = curl_init('http://www.example.com/'
// Execute
curl_exec($ch
// Check if any error occurred
if (!curl_errno($ch)) {
$info = curl_getinfo($ch
echo 'Took ', $info['total_time'], ' seconds to send a request to ', $info['url'], "\n";
}
// Close handle
curl_close($ch
?>
Example #2 curl
_
getinfo() example with
opt
parameter
<?php
// Create a cURL handle
$ch = curl_init('http://www.example.com/'
// Execute
curl_exec($ch
// Check HTTP status code
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";
}
}
// Close handle
curl_close($ch
?>
注意
注意
:如果手柄重新使用,则通过此功能收集的信息将保留。这意味着除非统计信息被该函数内部覆盖,否则返回先前的信息。
← curl_file_create
curl_init →