Hướng dẫn php curl get request with headers example - php curl nhận yêu cầu với ví dụ về tiêu đề

Có những câu hỏi mỏng hơn trong quá khứ như dưới đây.

Làm cách nào để gửi yêu cầu nhận với tiêu đề từ PHP?

Nhưng tôi không biết tại sao mã của tôi không hoạt động. Tôi muốn nhận "Mã trạng thái 200 OK và dữ liệu hình ảnh trong nhị phân" bằng cách sử dụng Curl và nhận yêu cầu với tiêu đề.

Tôi cũng có thể phạm sai lầm khi gỡ lỗi. Tôi sẽ đánh giá cao bất kỳ sự giúp đỡ của bạn. Cảm ơn trước!

Api hence: https://devdocs.line.me/en/#get-content

$url = "https://api.line.me/v2/bot/message/". $message_id. "/content";
$curl = curl_init("$url");
error_log(var_export($curl));

curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); // 証明書の検証を行わない
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
    'Authorization: Bearer ' . $accessToken,
));

$response = curl_exec($curl);
$header_size = curl_getinfo($curl, CURLINFO_HEADER_SIZE);
$header = substr($response, 0, $header_size);
$image_binary = substr($response, $header_size);
curl_close($curl);

error_log(print_r("xxx...",true));
error_log(var_export($response));
error_log(print_r("aaa...",true));
error_log(print_r($response,true));
error_log(print_r("bbb...",true));
error_log(print_r($header,true));
error_log(print_r("ccc...",true));
error_log(print_r($image_binary,true));

Sau đó .. tôi nhận được cái này ...

2017-01-01T01:04:48.272544+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] 
2017-01-01T01:04:48.911005+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] xxx...
2017-01-01T01:04:48.911023+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] 
2017-01-01T01:04:48.911063+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] aaa...
2017-01-01T01:04:48.911125+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] ����
2017-01-01T01:04:48.911165+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] bbb...
2017-01-01T01:04:48.911201+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] ����
2017-01-01T01:04:48.911239+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] ccc...
2017-01-01T01:04:48.911273+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] ��

Curl là phần mềm mà bạn có thể sử dụng để thực hiện các yêu cầu khác nhau bằng các giao thức khác nhau. PHP có tùy chọn sử dụng Curl và trong bài viết này, chúng tôi sẽ hiển thị một số ví dụ.

Php Curl Basics

curl_init();      // initializes a cURL session
curl_setopt();    // changes the cURL session behavior with options
curl_exec();      // executes the started cURL session
curl_close();     // closes the cURL session and deletes the variable made by curl_init();

Yêu cầu bài viết Curl PHP

Yêu cầu bài đăng thường được thực hiện để gửi dữ liệu thu thập người dùng đến máy chủ.

Hướng dẫn php curl get request with headers example - php curl nhận yêu cầu với ví dụ về tiêu đề

 'foo',
    'secondFieldData' => 'bar'
);

$cURLConnection = curl_init('http://hostname.tld/api');
curl_setopt($cURLConnection, CURLOPT_POSTFIELDS, $postRequest);
curl_setopt($cURLConnection, CURLOPT_RETURNTRANSFER, true);

$apiResponse = curl_exec($cURLConnection);
curl_close($cURLConnection);

// $apiResponse - available data from the API request
$jsonArrayResponse - json_decode($apiResponse);

PHP Curl nhận được yêu cầu

Nhận yêu cầu lấy dữ liệu từ một máy chủ. Đây có thể là một trang web HT HTML, phản hồi API hoặc các tài nguyên khác.

Tiêu đề PHP Curl

Bạn cũng có thể đặt các tiêu đề tùy chỉnh trong các yêu cầu Curl của bạn. Đối với điều này, chúng tôi sẽ sử dụng hàm & nbsp; curl_setopt ().

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Header-Key: Header-Value',
    'Header-Key-2: Header-Value-2'
));

Kiểm tra các lệnh liên quan đến PHP khác và cách thức chung. Nhận một tài khoản lưu trữ được chia sẻ mới với giảm giá tới 40% và làm chủ các kỹ năng PHP của bạn.

bởi Vincy. Sửa đổi lần cuối vào ngày 21 tháng 6 năm 2022.

PHP Curl là một thư viện cho phép khách hàng truy cập vào máy chủ từ xa thông qua URL. Nó gửi các yêu cầu HTTP đến điểm cuối từ một ứng dụng hoặc thành phần khác.

Nó cho phép các lượt truy cập giữa các ứng dụng để nhận được phản hồi qua mạng. Cơ chế này rất hữu ích để làm việc với các dịch vụ RESTful PHP, tương tác API và v.v.

Có rất nhiều trường hợp sử dụng trong đó bài Curl PHP hoàn toàn phù hợp. Ví dụ,

  1. Trích xuất nội dung từ một trang web.
  2. Chuẩn bị thức ăn từ các nguồn bên ngoài.
  3. Các phương thức truy cập trực tiếp API không có SDK.

Ví dụ nhanh này đưa ra một mã đơn giản để thực hiện bài viết Curl PHP.

Ví dụ nhanh

 'Jane',
    'dateOfBirth' => '1974-8-17'
);

$curlHandle = curl_init('http://domain-name/endpoint-path');
curl_setopt($curlHandle, CURLOPT_POSTFIELDS, $postParameter);
curl_setopt($curlHandle, CURLOPT_RETURNTRANSFER, true);

$curlResponse = curl_exec($curlHandle);
curl_close($curlHandle);

Ngoài ra, chúng ta sẽ thấy nhiều ví dụ trường hợp sử dụng hơn về các yêu cầu POST Curl trong các phần sắp tới.

Phần 1 - Khái niệm cơ bản của Curl PHP

Sau đây là các bước để thực hiện chu kỳ phản hồi yêu cầu PHP Curl cơ bản.

  • Khởi tạo phiên Curl.
  • Đặt các tùy chọn Curl.
  • Thực hiện yêu cầu.
  • Đóng phiên.

Làm thế nào để định cấu hình Curl PHP?

PHP chứa thư viện libcurl để cho môi trường hoạt động với curl. Thư viện này sẽ được bật theo mặc định.libcurl library to let the environment work with cURL. This library will be enabled by default.

Nếu không, hãy thực hiện các bước sau để kích hoạt mô -đun PHP Curl trong môi trường của bạn.

  1. Mở tệp cấu hình PHP.ini
  2. Kiểm tra sự khởi đầu
    curl_init();      // initializes a cURL session
    curl_setopt();    // changes the cURL session behavior with options
    curl_exec();      // executes the started cURL session
    curl_close();     // closes the cURL session and deletes the variable made by curl_init();
    5.
  3. Loại bỏ dấu chấm phẩy (;) ở đầu dòng trên.
  4. Khởi động lại máy chủ Apache.

Hướng dẫn php curl get request with headers example - php curl nhận yêu cầu với ví dụ về tiêu đề

Đặt các yêu cầu Post Curl Php - Phương pháp thay thế

Có nhiều cách để gửi tham số bài Curl Php Curl.

  1. Định dạng JSON.
  2. Chuỗi truy vấn HTTP.
  3. Định dạng mảng bài.

Định dạng JSON:

Chuỗi truy vấn HTTP:

Php Curl Post Array định dạng

curl_init();      // initializes a cURL session
curl_setopt();    // changes the cURL session behavior with options
curl_exec();      // executes the started cURL session
curl_close();     // closes the cURL session and deletes the variable made by curl_init();
6 có thể có một mảng PHP để chuyển các tham số đến điểm cuối.

"value1", "key2"=>"value2");
 
?>

Đặt các tùy chọn tiêu đề Curl

Để đặt tiêu đề PHP Curl, hằng số curlopt_httpheader được sử dụng. Một tiêu đề Curl có thể có thêm thông tin. Các khóa sau là một số ví dụ để thêm các tùy chọn tiêu đề PHP Curl.

  • Accept-Encoding
  • Cache-Control
  • Chủ nhà
  • Content-Type
  • Accept-Language
  • User-Agent

Chương trình này đặt các tùy chọn tiêu đề Curl để đặt loại nội dung. Có các tùy chọn để gửi tiêu đề tùy chỉnh. Đó là gửi các cặp giá trị khóa không chuẩn. Sử dụng tiền tố X- để gửi các tiêu đề không chuẩn. Thí dụ,X- to send non-standard headers. Example,

2017-01-01T01:04:48.272544+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] 
2017-01-01T01:04:48.911005+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] xxx...
2017-01-01T01:04:48.911023+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] 
2017-01-01T01:04:48.911063+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] aaa...
2017-01-01T01:04:48.911125+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] ����
2017-01-01T01:04:48.911165+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] bbb...
2017-01-01T01:04:48.911201+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] ����
2017-01-01T01:04:48.911239+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] ccc...
2017-01-01T01:04:48.911273+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] ��
0

Hằng số curlopt_header được đặt với boolean true. Đó là để cho phép thông tin tiêu đề được đính kèm với phản hồi trả về.

2017-01-01T01:04:48.272544+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] 
2017-01-01T01:04:48.911005+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] xxx...
2017-01-01T01:04:48.911023+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] 
2017-01-01T01:04:48.911063+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] aaa...
2017-01-01T01:04:48.911125+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] ����
2017-01-01T01:04:48.911165+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] bbb...
2017-01-01T01:04:48.911201+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] ����
2017-01-01T01:04:48.911239+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] ccc...
2017-01-01T01:04:48.911273+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] ��
1

Phần 2 - Các trường hợp sử dụng ví dụ

Với một số kiến ​​thức cơ bản, nó sẽ dễ hiểu các ví dụ sau. Nó liên quan đến một số trường hợp sử dụng các kịch bản của post curl PHP hoặc nhận các phương thức yêu cầu.

Dữ liệu biểu mẫu bài HTTP

PHP Curl cho phép đăng các tham số lên máy chủ. Nó sử dụng bất kỳ một trong các phương pháp chúng tôi đã thảo luận trước đó để đăng các tham số thông qua Curl.

Tập lệnh Curl sau đây cho thấy cách đăng một mảng lên URL điểm cuối.

curl_init();      // initializes a cURL session
curl_setopt();    // changes the cURL session behavior with options
curl_exec();      // executes the started cURL session
curl_close();     // closes the cURL session and deletes the variable made by curl_init();
7 và
curl_init();      // initializes a cURL session
curl_setopt();    // changes the cURL session behavior with options
curl_exec();      // executes the started cURL session
curl_close();     // closes the cURL session and deletes the variable made by curl_init();
6 sẽ gửi các giá trị qua bài Curl PHP.

2017-01-01T01:04:48.272544+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] 
2017-01-01T01:04:48.911005+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] xxx...
2017-01-01T01:04:48.911023+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] 
2017-01-01T01:04:48.911063+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] aaa...
2017-01-01T01:04:48.911125+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] ����
2017-01-01T01:04:48.911165+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] bbb...
2017-01-01T01:04:48.911201+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] ����
2017-01-01T01:04:48.911239+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] ccc...
2017-01-01T01:04:48.911273+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] ��
2

Php Curl Post để tải lên tệp

Cũng có thể tải các tệp lên máy chủ thông qua bài post Curl PHP. Mã dưới đây cho thấy cách tải tệp hình ảnh lên máy chủ.

Nó chuẩn bị đối tượng với dữ liệu tệp. Nó sử dụng chức năng PHP Curl_File_Create () để chuẩn bị nội dung bài đăng.

Bằng cách gửi gói ‘fileparam, theo cách này, mã điểm cuối có thể truy cập nó thông qua mảng $ _files [].

2017-01-01T01:04:48.272544+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] 
2017-01-01T01:04:48.911005+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] xxx...
2017-01-01T01:04:48.911023+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] 
2017-01-01T01:04:48.911063+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] aaa...
2017-01-01T01:04:48.911125+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] ����
2017-01-01T01:04:48.911165+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] bbb...
2017-01-01T01:04:48.911201+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] ����
2017-01-01T01:04:48.911239+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] ccc...
2017-01-01T01:04:48.911273+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] ��
3

Đặt mã điểm cuối sau vào máy chủ. Sau đó nhấn điểm cuối thông qua tập lệnh Curl ở trên. Yêu cầu Post Curl Post gửi đầu vào tệp đến điểm cuối này. Mã PHP này truy cập vào tệp được tải lên từ mảng $ _FILES.

php-curl-post-file-endpoint.php

2017-01-01T01:04:48.272544+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] 
2017-01-01T01:04:48.911005+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] xxx...
2017-01-01T01:04:48.911023+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] 
2017-01-01T01:04:48.911063+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] aaa...
2017-01-01T01:04:48.911125+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] ����
2017-01-01T01:04:48.911165+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] bbb...
2017-01-01T01:04:48.911201+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] ����
2017-01-01T01:04:48.911239+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] ccc...
2017-01-01T01:04:48.911273+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] ��
4

HTTP Nhận yêu cầu lấy trang web

Trong yêu cầu Curl, phương thức mặc định là có được. Chương trình này gọi máy chủ qua Curl với phương thức yêu cầu nhận mặc định.

Không giống như bài viết Curl PHP, nó gửi dữ liệu dưới dạng chuỗi truy vấn. Để chuyển các tham số cho một yêu cầu GET, nó sẽ được xây dựng như một phần của URL.

Nó lấy HTML của trang web được chỉ định là điểm cuối Curl. Nó in phản hồi và hiển thị trang web mục tiêu HT HTML trong trình duyệt.

2017-01-01T01:04:48.272544+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] 
2017-01-01T01:04:48.911005+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] xxx...
2017-01-01T01:04:48.911023+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] 
2017-01-01T01:04:48.911063+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] aaa...
2017-01-01T01:04:48.911125+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] ����
2017-01-01T01:04:48.911165+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] bbb...
2017-01-01T01:04:48.911201+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] ����
2017-01-01T01:04:48.911239+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] ccc...
2017-01-01T01:04:48.911273+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] ��
5

Lấy trang web HTML qua Curl và ghi vào một tệp

Thay vì in bố cục trang web vào trình duyệt, nó cũng có thể được ghi vào một tệp.

Mã này tạo ra một fileHandle và ghi phản hồi HTML Curl vào một tệp. Nó sử dụng tay cầm tập tin làm tài liệu tham khảo.

Sẽ rất hữu ích nếu bạn muốn tải xuống và lưu trang web HTML vào máy chủ vĩnh viễn.

2017-01-01T01:04:48.272544+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] 
2017-01-01T01:04:48.911005+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] xxx...
2017-01-01T01:04:48.911023+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] 
2017-01-01T01:04:48.911063+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] aaa...
2017-01-01T01:04:48.911125+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] ����
2017-01-01T01:04:48.911165+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] bbb...
2017-01-01T01:04:48.911201+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] ����
2017-01-01T01:04:48.911239+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] ccc...
2017-01-01T01:04:48.911273+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] ��
6

Php & nbsp; file_get_contents () & nbsp; hàm cũng được sử dụng để lấy nội dung của URL đích.

Nhưng, cấu hình máy chủ sẽ cho phép đọc nội dung bằng cách sử dụng phương thức này.

Bài đăng Curl Php và nhận dữ liệu JSON

Ví dụ này cho thấy cách gửi một bài đăng Curl PHP ở định dạng JSON. Nó cũng nhận được phản hồi Curl ở định dạng JSON.

Mã này hướng dẫn tạo dịch vụ API để nhận yêu cầu và gửi phản hồi ở định dạng JSON.

2017-01-01T01:04:48.272544+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] 
2017-01-01T01:04:48.911005+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] xxx...
2017-01-01T01:04:48.911023+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] 
2017-01-01T01:04:48.911063+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] aaa...
2017-01-01T01:04:48.911125+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] ����
2017-01-01T01:04:48.911165+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] bbb...
2017-01-01T01:04:48.911201+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] ����
2017-01-01T01:04:48.911239+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] ccc...
2017-01-01T01:04:48.911273+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] ��
7

Mã này chuẩn bị phản hồi JSON bằng cách đặt loại nội dung bằng tiêu đề PHP (). Nó đặt ứng dụng/json làm loại nội dung.

php-curl-post-endpoint-json.php

2017-01-01T01:04:48.272544+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] 
2017-01-01T01:04:48.911005+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] xxx...
2017-01-01T01:04:48.911023+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] 
2017-01-01T01:04:48.911063+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] aaa...
2017-01-01T01:04:48.911125+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] ����
2017-01-01T01:04:48.911165+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] bbb...
2017-01-01T01:04:48.911201+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] ����
2017-01-01T01:04:48.911239+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] ccc...
2017-01-01T01:04:48.911273+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] ��
8

Xử lý chuyển hướng (HTTP 301.302)

Curlopt_followLocation được đặt thành true để thực hiện chuyển hướng 3xx thông qua Curl PHP.

Trong quá trình chuyển hướng, Curl sẽ gửi yêu cầu nhận được chuyển hướng liên tiếp. Để thay đổi điều này, curlopt_postredir phải được đặt.

Chương trình này đặt curl_redir_post_all để gửi các yêu cầu POST CURL PHP cho các nỗ lực liên tiếp.

Nó giới hạn số lượng chuyển hướng bằng cách sử dụng hằng số Curlopt_MaxRedirs.

2017-01-01T01:04:48.272544+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] 
2017-01-01T01:04:48.911005+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] xxx...
2017-01-01T01:04:48.911023+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] 
2017-01-01T01:04:48.911063+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] aaa...
2017-01-01T01:04:48.911125+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] ����
2017-01-01T01:04:48.911165+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] bbb...
2017-01-01T01:04:48.911201+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] ����
2017-01-01T01:04:48.911239+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] ccc...
2017-01-01T01:04:48.911273+00:00 app[web.1]: [01-Jan-2017 10:04:48 Asia/Tokyo] ��
9

Chương trình này sẽ trả về thêm thông tin như hình dưới đây.

  • Chuyển hướng số lượng.
  • Thời gian để chuyển hướng.
  • Một tiêu đề với trạng thái 3xx.

Hướng dẫn php curl get request with headers example - php curl nhận yêu cầu với ví dụ về tiêu đề

Viết lỗi Curl ghi nhật ký vào một tệp

Giữ nhật ký là một thông lệ tốt nhất cho mục đích kiểm toán. Khi trang web trực tiếp, đôi khi các bản ghi cũng rất hữu ích cho việc gỡ lỗi.

Vì đó là một cuộc gọi từ xa, việc đăng nhập các lỗi Curl vào một tệp sẽ giúp phân tích và khắc phục sự cố.

Mã này hướng dẫn cách ghi lại lỗi xảy ra trong bài đăng Curl PHP. Nó sử dụng hàm php curl_error () để

curl_init();      // initializes a cURL session
curl_setopt();    // changes the cURL session behavior with options
curl_exec();      // executes the started cURL session
curl_close();     // closes the cURL session and deletes the variable made by curl_init();
0

Viết nhật ký Curl bằng cách sử dụng hằng số curlopt_stderr

Có một phương thức thay thế để ghi lại lỗi Curl PHP vào một tệp. Curlopt_stderr ghi thông báo lỗi với tham chiếu của xử lý tệp.

curl_init();      // initializes a cURL session
curl_setopt();    // changes the cURL session behavior with options
curl_exec();      // executes the started cURL session
curl_close();     // closes the cURL session and deletes the variable made by curl_init();
1

Chương trình này sẽ trả về đầu ra sau.

Hướng dẫn php curl get request with headers example - php curl nhận yêu cầu với ví dụ về tiêu đề

Phần 3 - Tạo tập lệnh PHP Curl để trích xuất hình ảnh từ một trang web

Trong phần này của bài viết, chúng ta sẽ tạo ra một thành phần Curl từ đầu đến cuối. Nó sẽ làm như sau để đạt được hình ảnh lấy từ một trang web.

  1. Tạo dịch vụ API để khởi tạo DOM để tải phản hồi.
  2. Tạo dịch vụ Curl để khởi tạo, định cấu hình và thực hiện các yêu cầu.
  3. Đọc phản hồi Curl và tải nó vào đối tượng DOM.
  4. Nhận URL nguồn hình ảnh bằng cách truy cập đối tượng DOM.
  5. Tạo một bộ sưu tập ảnh bằng cách sử dụng mảng phản hồi Curl PHP.

Lớp dịch vụ API để bắt đầu Curl và tạo đối tượng DOM

Lớp Grabimageapi này tạo ra các phiên bản php domdocument để tải trang web HTML.

Hàm tạo bắt đầu Curl và lấy phản hồi HTML hoàn chỉnh của URL. Sau đó, nó tải phản hồi này vào đối tượng DOM.

Với tham chiếu của đối tượng, getWebsiteImage () có URL nguồn hình ảnh.

Hàm này đọc tất cả các hình ảnh bằng cách sử dụng & nbsp; getElementsByTagName (). Bằng cách lặp lại mảng dữ liệu hình ảnh, nó chuẩn bị gói URL hình ảnh JSON.

Service/GrabImageAPI.php

curl_init();      // initializes a cURL session
curl_setopt();    // changes the cURL session behavior with options
curl_exec();      // executes the started cURL session
curl_close();     // closes the cURL session and deletes the variable made by curl_init();
2

Tạo dịch vụ Curl để thực hiện các hoạt động vòng đời thông thường

Lớp này không là gì ngoài việc thực hiện các hoạt động Curl cơ bản mà chúng ta đã thấy lúc đầu.

Trình xây dựng Grabimageapi bao gồm dịch vụ này và tạo ra thể hiện Curl.

Service/CurlService.php

curl_init();      // initializes a cURL session
curl_setopt();    // changes the cURL session behavior with options
curl_exec();      // executes the started cURL session
curl_close();     // closes the cURL session and deletes the variable made by curl_init();
3

API kích hoạt để lấy hình ảnh qua bài viết Curl PHP

Mã này sẽ nhấn API để lấy hình ảnh thông qua bài Curl PHP. Nó yêu cầu tham chiếu lớp API mà nó tạo bộ sưu tập hình ảnh động bằng Curl.

Mã này rất hữu ích để tạo một tiện ích thư viện cho cửa hàng bên ngoài của bạn một cách độc lập.

php-curl-grab-image.php

curl_init();      // initializes a cURL session
curl_setopt();    // changes the cURL session behavior with options
curl_exec();      // executes the started cURL session
curl_close();     // closes the cURL session and deletes the variable made by curl_init();
4

Sự kết luận

Hy vọng bài viết này giúp bạn biết kiến ​​thức sâu sắc về bài viết Curl PHP và các phương pháp yêu cầu khác.

Các ví dụ ngắn và từ đầu đến cuối có thể hữu ích để tạo thành phần Curl cho ứng dụng của bạn.

Tôi hoan nghênh ý kiến ​​của bạn để tiếp tục đưa ra nhiều giá trị hơn cho người học. Tải xuống
Download

Trở lại đầu

Làm thế nào tôi có thể nhận được tiêu đề trong PHP?

PHP | Hàm get_headers () Hàm get_headers () trong PHP được sử dụng để tìm nạp tất cả các tiêu đề được gửi bởi máy chủ trong phản hồi của yêu cầu HTTP. Tham số: Hàm này chấp nhận ba tham số như đã đề cập ở trên và được mô tả dưới đây: $ url: Đây là một tham số bắt buộc của chuỗi loại. Nó xác định URL mục tiêu.get_headers() Function The get_headers() function in PHP is used to fetch all the headers sent by the server in the response of an HTTP request. Parameters: This function accepts three parameters as mentioned above and described below: $url: It is a mandatory parameter of type string. It defines the target URL.

Curl trong PHP với ví dụ là gì?

Curl là một thư viện PHP và công cụ dòng lệnh (tương tự như WGET) cho phép bạn gửi và nhận các tệp qua HTTP và FTP. Bạn có thể sử dụng proxy, truyền dữ liệu qua các kết nối SSL, đặt cookie và thậm chí nhận các tệp được bảo vệ bởi một đăng nhập.a PHP library and command-line tool (similar to wget) that allows you to send and receive files over HTTP and FTP. You can use proxies, pass data over SSL connections, set cookies, and even get files that are protected by a login.

Curlopt_postfields là gì?

Nó trả về một con trỏ cho một chuỗi được mã hóa có thể được truyền dưới dạng postdata.Sử dụng curlopt_postfields ngụ ý cài đặt curlopt_post thành 1. Nếu curlopt_postfields được đặt rõ ràng thành null thì libcurl sẽ lấy dữ liệu bài viết từ cuộc gọi lại đọc.. Using CURLOPT_POSTFIELDS implies setting CURLOPT_POST to 1. If CURLOPT_POSTFIELDS is explicitly set to NULL then libcurl will get the POST data from the read callback.

Curl nhận được lệnh là gì?

13. Nhận phương pháp.Phương pháp GET được sử dụng để lấy tài nguyên từ một URL cụ thể.Lệnh Curl https://www.keycdn.com đơn giản sẽ sử dụng GET làm phương thức HTTP mặc định, tuy nhiên nó cũng có thể được chỉ định bằng cách sử dụng -Request Get hoặc -x Get.used to retrieve resources from a particular URL. The simple curl https://www.keycdn.com command will use GET as the default HTTP method, however it can also be specified using --request GET or -X GET .