PHP

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_PRIVATEcurl_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 →