Hàm curl_getinfo() trong PHP

20/09/2020 - lượt xem
Chia sẻ
 
Rate this post

Định nghĩa.

curl_getinfo – Nhận thông tin liên quan đến việc chuyển nhượng cụ thể

Cú pháp.

Cú pháp:

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

Trong đó:

$ch Một xử lý cURL được trả về bởi curl_init ();

$opt có thể là một trong những hằng số sau:

  • CURLINFO_EFFECTIVE_URL – URL hiệu lực cuối cùng
  • CURLINFO_HTTP_CODE – Mã phản hồi cuối cùng. Kể từ PHP 5.5.0 và cURL 7.10.8, đây là bí danh kế thừa của CURLINFO_RESPONSE_CODE
  • CURLINFO_FILETIME – Thời gian từ xa của tài liệu được truy xuất, với CURLOPT_FILETIME được bật; nếu -1 được trả về thời gian của tài liệu là không xác định
  • CURLINFO_TOTAL_TIME – Tổng thời gian giao dịch tính bằng giây cho lần chuyển cuối cùng
  • CURLINFO_NAMELOOKUP_TIME – Thời gian tính bằng giây cho đến khi việc phân giải tên hoàn tất
  • CURLINFO_CONNECT_TIME – Thời gian tính bằng giây để thiết lập kết nối
  • CURLINFO_PRETRANSFER_TIME – Thời gian tính bằng giây kể từ khi bắt đầu cho đến ngay trước khi quá trình chuyển tệp bắt đầu
  • CURLINFO_STARTTRANSFER_TIME – Thời gian tính bằng giây cho đến khi byte đầu tiên sắp được chuyển
  • CURLINFO_REDIRECT_COUNT – Số lượng chuyển hướng, với tùy chọn CURLOPT_FOLLOWLOCATION được bật
  • CURLINFO_REDIRECT_TIME – Thời gian tính bằng giây của tất cả các bước chuyển hướng trước khi giao dịch cuối cùng được bắt đầu, với tùy chọn CURLOPT_FOLLOWLOCATION được bật
  • CURLINFO_REDIRECT_URL – Với tùy chọn CURLOPT_FOLLOWLOCATION bị vô hiệu hóa: URL chuyển hướng được tìm thấy trong giao dịch cuối cùng, sẽ được yêu cầu thủ công tiếp theo. Với tùy chọn
  • CURLOPT_FOLLOWLOCATION được bật: tùy chọn này trống. URL chuyển hướng trong trường hợp này có sẵn trong CURLINFO_EFFECTIVE_URL
  • CURLINFO_PRIMARY_IP – Địa chỉ IP của kết nối gần đây nhất
  • CURLINFO_PRIMARY_PORT – Cổng đích của kết nối gần đây nhất
  • CURLINFO_LOCAL_IP – Địa chỉ IP cục bộ (nguồn) của kết nối gần đây nhất
  • CURLINFO_LOCAL_PORT – Cổng cục bộ (nguồn) của kết nối gần đây nhất
  • CURLINFO_SIZE_UPLOAD – Tổng số byte được tải lên
  • CURLINFO_SIZE_DOWNLOAD – Tổng số byte được tải xuống
  • CURLINFO_SPEED_DOWNLOAD – Tốc độ tải xuống trung bình
  • CURLINFO_SPEED_UPLOAD – Tốc độ tải lên trung bình
  • CURLINFO_HEADER_SIZE – Tổng kích thước của tất cả các tiêu đề đã nhận
  • CURLINFO_HEADER_OUT – Đã gửi chuỗi yêu cầu. Để điều này hoạt động, hãy thêm tùy chọn
  • CURLINFO_HEADER_OUT vào trình điều khiển bằng cách gọi curl_setopt ()
  • CURLINFO_REQUEST_SIZE – Tổng kích thước của các yêu cầu đã phát hành, hiện chỉ dành cho các yêu cầu HTTP
  • CURLINFO_SSL_VERIFYRESULT – Kết quả xác minh chứng chỉ SSL được yêu cầu bằng cách đặt
  • CURLOPT_SSL_VERIFYPEER
  • CURLINFO_CONTENT_LENGTH_DOWNLOAD – Độ dài nội dung tải xuống, đọc từ trường Nội dung-Độ dài:
  • CURLINFO_CONTENT_LENGTH_UPLOAD – Kích thước tải lên được chỉ định
  • CURLINFO_CONTENT_TYPE – Loại-Nội dung: của tài liệu được yêu cầu. NULL cho biết máy chủ không gửi tiêu đề Content-Type: hợp lệ
  • CURLINFO_PRIVATE – Dữ liệu cá nhân được liên kết với xử lý cURL này, trước đó đã được đặt bằng tùy chọn CURLOPT_PRIVATE của curl_setopt ()
  • CURLINFO_RESPONSE_CODE – Mã phản hồi cuối cùng
  • CURLINFO_HTTP_CONNECTCODE – Mã phản hồi CONNECT
  • CURLINFO_HTTPAUTH_AVAIL – Mặt nạ bit cho biết (các) phương pháp xác thực có sẵn theo phản hồi trước đó
  • CURLINFO_PROXYAUTH_AVAIL – Mặt nạ bit cho biết (các) phương thức xác thực proxy khả dụng theo phản hồi trước đó
  • CURLINFO_OS_ERRNO – Lỗi do lỗi kết nối. Con số là hệ điều hành và hệ thống cụ thể.
  • CURLINFO_NUM_CONNECTS – Số lượng kết nối mà curl phải tạo để đạt được lần chuyển trước đó
  • CURLINFO_SSL_ENGINES – Hỗ trợ công cụ tiền điện tử OpenSSL
  • CURLINFO_COOKIELIST – Tất cả các cookie đã biết
  • CURLINFO_FTP_ENTRY_PATH – Đường dẫn vào máy chủ FTP
  • CURLINFO_APPCONNECT_TIME – Thời gian tính bằng giây từ khi bắt đầu cho đến khi hoàn tất kết nối / bắt tay SSL / SSH với máy chủ từ xa
  • CURLINFO_CERTINFO – Chuỗi chứng chỉ TLS
  • CURLINFO_CONDITION_UNMET – Thông tin về thời gian không đáp ứng có điều kiện
  • CURLINFO_RTSP_CLIENT_CSEQ – CSeq ứng dụng khách RTSP tiếp theo
  • CURLINFO_RTSP_CSEQ_RECV – CSeq đã nhận gần đây
  • CURLINFO_RTSP_SERVER_CSEQ – CSeq máy chủ RTSP tiếp theo
  • CURLINFO_RTSP_SESSION_ID – ID phiên RTSP
  • CURLINFO_CONTENT_LENGTH_DOWNLOAD_T – Thời lượng nội dung tải xuống. Đây là giá trị được đọc từ trường Content-Type:. -1 nếu kích thước không được biết
  • NGTH_CURLINFO_CONTENT_LEUPLOAD_T – Kích thước tải lên được chỉ định. -1 nếu kích thước không được biết
  • CURLINFO_HTTP_VERSION – Phiên bản được sử dụng trong kết nối HTTP cuối cùng. Giá trị trả về sẽ là một trong các hằng số CURL_HTTP_VERSION_ * đã xác định hoặc 0 nếu không thể xác định được phiên bản
  • CURLINFO_PROTOCOL – Giao thức được sử dụng trong kết nối HTTP cuối cùng. Giá trị trả về sẽ chính xác là một trong các giá trị CURLPROTO_ *
  • CURLINFO_PROXY_SSL_VERIFYRESULT – Kết quả xác minh chứng chỉ được yêu cầu (sử dụng tùy chọn
  • CURLOPT_PROXY_SSL_VERIFYPEER). Chỉ được sử dụng cho proxy HTTPS
  • CURLINFO_SCHEME – Lược đồ URL được sử dụng cho kết nối gần đây nhất
  • CURLINFO_SIZE_DOWNLOAD_T – Tổng số byte đã được tải xuống. Số chỉ dành cho lần chuyển tiền gần đây nhất và sẽ được đặt lại cho mỗi lần chuyển tiền mới
  • CURLINFO_SIZE_UPLOAD_T – Tổng số byte đã được tải lên
  • CURLINFO_SPEED_DOWNLOAD_T – Tốc độ tải xuống trung bình tính bằng byte / giây được đo cho tải xuống hoàn chỉnh
  • CURLINFO_SPEED_UPLOAD_T – Tốc độ tải lên trung bình tính bằng byte / giây được đo cho toàn bộ quá trình tải lên
  • CURLINFO_APPCONNECT_TIME_T – Thời gian, tính bằng micro giây, mất từ ​​s

Giá trị trả về:

Nếu lựa chọn được đưa ra, trả về giá trị của nó. Nếu không, trả về một mảng kết hợp với các phần tử sau (tương ứng với lựa chọn) hoặc FALSE nếu không thành công:

  • “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” (This is only set if the CURLINFO_HEADER_OUT is set by a previous call to curl_setopt())

Lưu ý rằng dữ liệu riêng tư không được bao gồm trong mảng kết hợp và phải được truy xuất riêng lẻ bằng tùy chọn CURLINFO_PRIVATE

Sự thay đổi.

Phiên bản Nội dung
7.3.0 Introduced CURLINFO_CONTENT_LENGTH_DOWNLOAD_TCURLINFO_CONTENT_LENGTH_UPLOAD_T,

CURLINFO_HTTP_VERSIONCURLINFO_PROTOCOLCURLINFO_PROXY_SSL_VERIFYRESULT,

CURLINFO_SCHEMECURLINFO_SIZE_DOWNLOAD_TCURLINFO_SIZE_UPLOAD_T,

CURLINFO_SPEED_DOWNLOAD_TCURLINFO_SPEED_UPLOAD_TCURLINFO_APPCONNECT_TIME_T,

CURLINFO_CONNECT_TIME_TCURLINFO_FILETIME_TCURLINFO_NAMELOOKUP_TIME_T,

CURLINFO_PRETRANSFER_TIME_TCURLINFO_REDIRECT_TIME_TCURLINFO_STARTTRANSFER_TIME_T,

CURLINFO_TOTAL_TIME_T.

5.5.0 Introduced CURLINFO_RESPONSE_CODECURLINFO_HTTP_CONNECTCODECURLINFO_HTTPAUTH_AVAIL,

CURLINFO_PROXYAUTH_AVAILCURLINFO_OS_ERRNOCURLINFO_NUM_CONNECTS,

CURLINFO_SSL_ENGINESCURLINFO_COOKIELISTCURLINFO_FTP_ENTRY_PATH,

CURLINFO_APPCONNECT_TIMECURLINFO_CONDITION_UNMETCURLINFO_RTSP_CLIENT_CSEQ,

CURLINFO_RTSP_CSEQ_RECVCURLINFO_RTSP_SERVER_CSEQ and CURLINFO_RTSP_SESSION_ID.

5.4.7 Introduced CURLINFO_PRIMARY_IPCURLINFO_PRIMARY_PORTCURLINFO_LOCAL_IP and

CURLINFO_LOCAL_PORT.

5.3.7 Introduced CURLINFO_REDIRECT_URL.
5.3.0 Introduced CURLINFO_CERTINFO.
5.2.4 Introduced CURLINFO_PRIVATE.
5.1.3 Introduced CURLINFO_HEADER_OUT.

Ví dụ.

Ví dụ 1

<?php
$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);
?>

Ví dụ # 2 curl_getinfo () ví dụ với tham số opt

<?php
$ch = curl_init('http://www.example.com/');

// Execute
curl_exec($ch);

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);
?>

Lưu ý.

Thông tin do chức năng này thu thập được giữ lại nếu handle is re-used.. Điều này có nghĩa là trừ khi một thống kê được ghi đè nội bộ bởi chức năng này, thông tin trước đó sẽ được trả về.

Thông tin thêm.

  • Chỉ cần lưu ý nhanh: nếu bạn muốn sử dụng curl_getinfo () với tùy chọn CURLINFO_HEADER_OUT để gỡ lỗi yêu cầu cURL của mình, bạn phải thêm curl_setopt ($ handle, CURLINFO_HEADER_OUT, true); đầu tiên trong khi xác định các tùy chọn.
  • Ở đây bạn có một hàm mà tôi sử dụng để lấy nội dung của một URL bằng cách sử dụng cURL. Điều này sử dụng curl_getinfo để biết liệu đó có phải là URL thông thường hay có thể là chuyển hướng.

    function getUrlContent($url){
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322)');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5);
    curl_setopt($ch, CURLOPT_TIMEOUT, 5);
    $data = curl_exec($ch);
    $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    curl_close($ch);
    return ($httpcode>=200 && $httpcode<300) ? $data : false;
    }

Các bạn bấm đây  php.net.  để xem chi tiết hơn

Hi vọng với bài viết này, bạn đã hiểu rõ ứng dụng của hàm curl_getinfo() trong PHP. Nếu bạn thấy bài viết hay và có ý nghĩa hãy like và chia sẻ bài viết này để mọi người cùng nhau học tập nhé. Cảm ơn các bạn đã ghé thăm codetutam.com

    Liên hệ với chúng tôi

    Để lại thông tin để nhận được các bài viết khác

    Rate this post

    Xem thêm nhiều bài tin mới nhất về Kiến thức

    Xem thêm