CURL viết tắt của PHP là gì?

I had the following experience when harvesting urls with a get variable from a page using cUrl. HTML pages will output ampersands as & when the page is read by the curl function.

If you code a script to find all hyperlinks, it will use & instead of &, especially using a regular expression search.

It is hard to detect because when you output the url to the browser it renders the html. To fix, add a line to replace the & with &.

function processURL($url){
    $url=str_replace('&','&',$url);
    $ch=curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
    $xml = curl_exec ($ch);
    curl_close ($ch);
    echo $xml;
}
?>

Sử dụng đơn giản. Yêu cầu/thao tác đơn giản và phổ biến nhất được thực hiện bằng HTTP là lấy một URL. Bản thân URL có thể đề cập đến một trang web, hình ảnh hoặc tệp. Máy khách đưa ra yêu cầu GET tới máy chủ và nhận tài liệu mà nó yêu cầu

Hôm nay, chúng ta sẽ khám phá tiện ích mở rộng cURL trong PHP, cho phép bạn thực hiện các yêu cầu HTTP từ mã của mình

Thường thì bạn cần giao tiếp với các trang web bên ngoài trong quá trình phát triển PHP hàng ngày của mình. Cho dù đó là gọi API REST của bên thứ ba để tìm nạp dữ liệu hay tải xuống tài nguyên từ một trang web bên ngoài, thì bạn đều muốn có một thư viện cho phép bạn thực hiện điều đó một cách dễ dàng

Trong PHP, có nhiều phương thức khác nhau mà bạn có thể sử dụng để kết nối và giao tiếp với các loại máy chủ khác nhau. Một trong những cách dễ nhất là sử dụng hàm

2
40 để đọc các tệp từ xa. Mặt khác, bạn cũng có thể sử dụng socket để thực hiện giao tiếp client-server. Tuy nhiên, trong bài viết này, chúng ta sẽ thảo luận chi tiết về tiện ích mở rộng cURL, với các ví dụ thực tế

cURL là viết tắt của client URLs và đó là một thư viện cho phép bạn gửi và nhận thông tin bằng cú pháp URL. Trên thực tế, nó tận dụng thư viện libcurl do Daniel Stenberg tạo ra, cho phép bạn kết nối và giao tiếp với nhiều loại máy chủ khác nhau với nhiều loại giao thức khác nhau. Ngoài HTTP và HTTPS, thư viện libcurl còn hỗ trợ các giao thức như FTP, Gopher, Telnet, DICT, File và LDAP

Từ phần tiếp theo trở đi, chúng ta sẽ đi qua một số ví dụ thực tế để chứng minh cách bạn có thể sử dụng các hàm cURL trong PHP

Ví dụ trong thế giới thực

Trong phần này, chúng ta sẽ xây dựng các ví dụ thực tế để minh họa các hàm cURL khác nhau trong PHP

Cách tải xuống tệp bằng cURL trong PHP

Đọc hoặc tải xuống các tệp từ xa là một trong những trường hợp sử dụng phổ biến nhất cho cURL. Điều này được thực hiện bằng một yêu cầu GET cURL, mà chúng ta sẽ thảo luận trong phần này

Hãy tiếp tục và tạo curl_read_file. tệp php với nội dung sau

1

2
$url = 'https://www.example.com';
3
4
$curl = curl_init();
5
________9____10__________

0

1

2

3

4

5

6

7

8

9

Trong ví dụ trên, chúng tôi đã sử dụng các hàm cURL để đọc trang chủ của ví dụ. tên miền com. Hãy xem qua các đoạn quan trọng để hiểu cách thức hoạt động của nó

Đầu tiên, chúng tôi đã sử dụng hàm

2
41 để khởi tạo một phiên cURL mới. Biến
2
42 giữ một điều khiển cURL, mà chúng ta có thể sử dụng để đặt các tùy chọn khác nhau để truyền cURL với sự trợ giúp của hàm
2
43

Khi bạn đang làm việc với cURL, hàm

2
43 là hàm mà bạn sẽ xử lý nhiều nhất, vì nó cho phép bạn khởi tạo các tùy chọn yêu cầu
2
45 khác nhau. Hàm
2
43 nhận ba đối số. một điều khiển cURL, tùy chọn
2
47 và giá trị của tùy chọn
2
47

Tiếp theo, chúng tôi đã sử dụng tùy chọn

2
49 để đặt URL yêu cầu thành
2
50 với chức năng
2
43. Hơn nữa, chúng tôi đã đặt tùy chọn
2
52 thành
2
53 vì chúng tôi muốn khởi tạo phản hồi thành biến
2
54. Nếu chúng tôi không đặt nó thành
2
53, phản hồi sẽ được hiển thị trực tiếp trên màn hình. Cuối cùng, chúng tôi đã đặt tùy chọn
2
56 thành
2
57 để bỏ qua thông tin tiêu đề trong đầu ra

Cuối cùng, chúng tôi đã sử dụng hàm

2
58 để thực hiện yêu cầu cURL. Nếu mọi thứ suôn sẻ, biến
2
54 sẽ chứa nguồn trang chủ của
2
50

Cách đăng dữ liệu bằng cURL trong PHP

Trong phần này, chúng ta sẽ xem cách đăng dữ liệu bằng cURL

Hãy tạo curl_post_example. tệp php với nội dung sau

1

2
2
3
3
4
$curl = curl_init();
5
6
2
9

0
$url = 'https://www.example.com';
1

2
$url = 'https://www.example.com';
3

4
$url = 'https://www.example.com';
5

5
$url = 'https://www.example.com';
7

7

8
3
0
3
1
3
2
curl_setopt($curl, CURLOPT_URL, $url);
3
4
3
5
3
6
3
7
3
8
3
9

6
4
1
4
2

9

Trong ví dụ trên, chúng tôi giả sử rằng chúng tôi cần gửi yêu cầu bằng phương thức HTTP POST. Trên thực tế, nó hoạt động tương tự như việc gửi biểu mẫu bằng phương thức POST

Biến

2
61 chứa một mảng các giá trị mà chúng ta cần gửi dưới dạng dữ liệu POST. Tiếp theo, chúng tôi đã sử dụng hàm
2
62 để chuẩn bị chuỗi truy vấn được mã hóa URL

Tiếp theo, chúng tôi đã đặt tùy chọn

2
63 thành
2
53 để đặt phương thức yêu cầu thành HTTP POST. Hơn nữa, chúng tôi cần sử dụng tùy chọn
2
65 để đặt dữ liệu POST mà chúng tôi muốn gửi cùng với yêu cầu

Cuối cùng, chúng tôi đã sử dụng hàm

2
58 để thực hiện yêu cầu cURL. Vì vậy, theo cách này, bạn có thể thực hiện một yêu cầu POST cURL

Cách đăng dữ liệu JSON bằng cURL trong PHP

Thường xuyên hơn không, bạn cần gửi dữ liệu JSON trong yêu cầu POST cURL. Trong phần này, chúng ta sẽ xem cách bạn có thể gửi dữ liệu JSON bằng phương thức POST trong yêu cầu cURL

Vì đó là một yêu cầu POST, hãy sửa lại ví dụ mà chúng ta vừa thảo luận trong phần trước. Hãy tiếp tục và tạo curl_post_json. tệp php với nội dung sau

1

2
2
3
3
4
$curl = curl_init();
5
6
2
9

0
$url = 'https://www.example.com';
1

2
$url = 'https://www.example.com';
3

4
$url = 'https://www.example.com';
5

5
$url = 'https://www.example.com';
7

7

8
5
4
3
1
3
2
curl_setopt($curl, CURLOPT_URL, $url);
3
4
3
5
3
6
6
1
3
8
6
3
3
9
6
5
4
1
4
2

6
6
9
curl_setopt($curl, CURLOPT_URL, $url);
0

9

Mặc dù nó có vẻ giống với ví dụ trong phần trước, nhưng điều quan trọng là chúng ta đã sử dụng hàm

2
67 để tạo một chuỗi JSON từ mảng
2
61

Tiếp theo, chúng tôi đã sử dụng tùy chọn

2
69 để đặt tiêu đề
2
70 thành
2
71 để thông báo cho máy chủ API rằng chúng tôi đang gửi dữ liệu JSON. Tiêu đề
2
70 rất hữu ích để đăng dữ liệu ở các định dạng khác nhau. Ví dụ: nếu bạn muốn gửi dữ liệu XML, bạn phải đặt tiêu đề
2
70 thành
2
74

Ngoại trừ điều đó, nó khá giống với yêu cầu POST thông thường. Vì vậy, theo cách này, bạn có thể đăng các loại dữ liệu khác nhau bằng cách đặt tiêu đề

2
70 phù hợp. Nếu bạn không đặt tiêu đề
2
70, nó sẽ sử dụng
2
77 làm giá trị mặc định

Cách tải tệp lên bằng cURL trong PHP

Trong phần này, chúng tôi sẽ thảo luận về cách bạn có thể tải tệp lên bằng cURL

Hãy tạo curl_post_file. tệp php với nội dung sau

1

2
2
3
3
4
$curl = curl_init();
5
6

01

0

03

2

05

4

07

5

09

7

8
2
9
3
1
$url = 'https://www.example.com';
1
3
2
$url = 'https://www.example.com';
3
3
4

18
3
6

20
3
8
$url = 'https://www.example.com';
7
3
9
4
1
curl_setopt($curl, CURLOPT_URL, $url);
4
2
3
5
6
9

29
curl_setopt($curl, CURLOPT_URL, $url);
0

31

32

33

6

35

36

9

Khi bạn muốn tải lên một tệp, bạn cần tạo một đối tượng

2
78 ngay từ đầu. Kể từ PHP 5. 5+, việc tạo nó khá dễ dàng vì bạn chỉ cần sử dụng hàm
2
79 để tạo một đối tượng
2
78. Đối số đầu tiên của hàm
2
79 là đường dẫn tuyệt đối của tệp mà bạn muốn tải lên

Nếu bạn vẫn đang sử dụng phiên bản PHP cũ hơn, phiên bản này không được khuyến nghị, thì chúng tôi đã sử dụng cú pháp dự phòng

2
82 để tạo liên kết tệp

Cuối cùng, chúng tôi đã đặt tiêu đề

2
70 thành
2
84 vì đây sẽ là một yêu cầu POST ở dạng nhiều phần. Ngoài ra, đó là một yêu cầu POST cURL thông thường

Cho đến nay, chúng ta đã trải qua một số phương thức cURL khác nhau thường được sử dụng trong PHP. Trong phần tiếp theo, chúng ta sẽ xem cách bạn có thể sử dụng thư viện Guzzle, thư viện này giúp bạn xử lý các yêu cầu HTTP trong PHP dễ dàng hơn

Ứng dụng khách HTTP Guzzle là gì?

Theo tài liệu chính thức

Guzzle là một ứng dụng khách HTTP PHP giúp dễ dàng gửi các yêu cầu HTTP và dễ dàng tích hợp với các dịch vụ web

Hãy nhanh chóng tìm hiểu những lợi ích của việc sử dụng Guzzle trên các hàm cURL PHP

  • một giao diện đơn giản cho các loại dữ liệu khác nhau
  • hỗ trợ cả yêu cầu đồng bộ và không đồng bộ
  • hỗ trợ các luồng cURL, ổ cắm và PHP
  • Tuân thủ PSR-7
  • và nhiều hơn nữa

Nói chung, đây là một trong những thư viện tốt nhất để sử dụng khi bạn muốn thực hiện lệnh gọi HTTP bằng các phương thức khác nhau. Trong phần này, chúng ta sẽ thảo luận về cách cài đặt Guzzle, tiếp theo là một vài ví dụ nhanh để chứng minh sức mạnh của thư viện này

Cách cài đặt thư viện Guzzle

Tài liệu chính thức khuyên bạn nên sử dụng Composer để cài đặt Guzzle. Hãy chạy lệnh sau để cài đặt Guzzle trong dự án của bạn

1

39
2

41
3

43
4

45
5

47
6

49

0

51

2

53

4

55

5

57

7

59

8

61
3
1

63
3
2

65
3
4

67

Sau khi được cài đặt, bạn cần yêu cầu trình tải tự động của Composer, như được hiển thị trong đoạn mã sau

1

69

Và với điều đó, bạn đã sẵn sàng sử dụng Guzzle

Cách thực hiện yêu cầu GET với Guzzle

Trong phần này, chúng ta sẽ xem cách bạn có thể gửi yêu cầu GET bằng Guzzle

Chúng tôi sẽ sửa lại ví dụ mà chúng tôi đã thảo luận trước đó, vì nó sẽ giúp bạn hiểu cách bạn có thể chuyển đổi mã PHP cURL hiện tại của mình sang triển khai dựa trên Guzzle

Chúng ta hãy xem ví dụ sửa đổi

1

2

69
3
4

76
5
2_______78________9____2_______0

81

Nó không đơn giản sao? . Và bây giờ, bạn có quyền truy cập vào rất nhiều phương thức tiện ích được cung cấp bởi lớp

2
85

Trong trường hợp của chúng tôi, chúng tôi cần tìm nạp nội dung bằng phương thức GET, vì vậy chúng tôi đã sử dụng phương thức

2
88 của lớp
2
85 và nó sẽ trả về đối tượng ________0____90. Đối tượng
2
90 cung cấp nhiều phương thức khác nhau như
2
92,
2
93,
2
94, v.v. Chúng tôi đã sử dụng phương thức
2
93 để tìm nạp nội dung phần thân phản hồi

Vì vậy, đó là cách bạn có thể thực hiện các yêu cầu HTTP GET với Guzzle

Cách thực hiện một yêu cầu POST với Guzzle

Trong phần này, chúng ta sẽ xem cách bạn có thể thực hiện các yêu cầu HTTP POST với Guzzle

Chúng tôi sẽ sửa lại curl_post_example. php, mà chúng ta đã thảo luận trong phần trước. Mã sửa đổi với Guzzle trông như thế này

1

2

69
3
4

76
5

90
6

92

0

94

2

96

4

98

5
2
00

7
2
02

8
3
1
2
05
3
2

81
3
4
2
09

Vì đây là một yêu cầu POST, nên chúng ta cần chuyển mảng

2
96 làm đối số thứ hai của phương thức
2
97. Trong ví dụ của chúng tôi, nó chứa dữ liệu biểu mẫu mà chúng tôi cần gửi dưới dạng dữ liệu POST

Nếu bạn đang thắc mắc làm thế nào để gửi dữ liệu JSON, bạn chỉ cần thay đổi khóa

2
98 thành
2
99 và dữ liệu sẽ được gửi dưới dạng JSON

Ngoài ra, nếu bạn muốn gửi bất kỳ tiêu đề HTTP nào cùng với yêu cầu, bạn có thể thực hiện việc đó bằng khóa

$url = 'https://www.example.com';
00, như minh họa trong đoạn mã sau

1
2
11
2
2
11
3
2
15
4
2
17
5
$url = 'https://www.example.com';
7
6

90

0

92

2
2
25

4
2
27

5
2
29

7
2
31

8
2
33
3
1
2
02
3
2
2
11
3
4
2
11

Trên thực tế, thư viện Guzzle cung cấp rất nhiều tùy chọn cấu hình cho mọi phương thức. Ngoài ra, có nhiều cách để làm điều tương tự, vì vậy tôi khuyến khích bạn khám phá nó một cách chi tiết và tôi chắc chắn rằng nó sẽ rất thú vị

Vì vậy, đó là phần giới thiệu nhanh về thư viện Guzzle, cùng với các hàm PHP cURL

Phần kết luận

Hôm nay, chúng ta đã khám phá những kiến ​​thức cơ bản về tiện ích mở rộng cURL trong PHP. Chúng tôi đã thảo luận về cách bạn có thể thực hiện các loại yêu cầu HTTP khác nhau bằng cURL trong PHP. Ngoài ra, chúng tôi đã giới thiệu nhanh về thư viện Guzzle, thư viện này giúp các nhà phát triển dễ dàng hơn khi xử lý các yêu cầu HTTP trong PHP

cURL có nghĩa là gì?

cURL, viết tắt của URL máy khách , là một công cụ dòng lệnh mà nhà phát triển sử dụng để truyền dữ liệu đến và từ máy chủ. Về cơ bản nhất, cURL cho phép bạn nói chuyện với máy chủ bằng cách chỉ định vị trí (ở dạng URL) và dữ liệu bạn muốn gửi.

Làm cách nào để sử dụng lệnh cURL trong PHP?

curl_setopt($ch, option, value) đặt tùy chọn cho phiên cURL được xác định bởi tham số ch. Tùy chọn chỉ định tùy chọn nào sẽ được đặt và giá trị chỉ định giá trị cho tùy chọn đã cho. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1) trả lại nội dung trang. Nếu đặt 0 thì sẽ không có đầu ra nào được trả về

cURL có nghĩa là gì trong API?

cURL là công cụ dòng lệnh để nhận hoặc gửi tệp bằng cú pháp URL . Vì cURL sử dụng libcurl, nên nó hỗ trợ cùng một loạt các giao thức Internet phổ biến mà libcurl hỗ trợ. Hướng dẫn này sẽ hướng dẫn định dạng và cú pháp được sử dụng khi thực hiện các yêu cầu API Oracle Eloqua với cURL.