Php có cURL không?

Có một số hiểu lầm về định nghĩa khi các nhà phát triển nói cUrl trong PHP hoặc libcurl trong PHP. Nhưng hầu hết thời gian, chúng có nghĩa là PHP/CURL

Trong hướng dẫn này, trước tiên chúng ta sẽ tìm hiểu cUrl, libcurl và PHP/CURL là gì, vì chúng ta muốn mọi người biết sự khác biệt trong ba khái niệm này. Sau đó, chúng tôi sẽ chuyển sang sử dụng hoàn thành tác vụ bằng PHP/cURL

Nhiệm vụ chúng ta sẽ hoàn thành ở phần cuối của hướng dẫn này là tìm nạp nội dung của một trang google bằng cách chuyển cụm từ tìm kiếm "curl". Và chúng tôi cũng sẽ cung cấp một số tài liệu tham khảo về cách bạn có thể mở rộng hướng dẫn này để tiến xa hơn

#Giới thiệu

Trước tiên hãy cho chúng tôi hiểu các khái niệm về curl, libcurl và PHP/cURL

  1. Xoăn. Công cụ dòng lệnh để nhận hoặc gửi tệp bằng cú pháp URL
  2. thư viện. một thư viện được tạo bởi Daniel Stenberg, 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. libcurl hiện hỗ trợ các giao thức http, https, ftp, gopher, telnet, dict, file và ldap. libcurl cũng hỗ trợ chứng chỉ HTTPS, HTTP POST, HTTP PUT, tải lên FTP (điều này cũng có thể được thực hiện với tiện ích mở rộng ftp của PHP), tải lên dựa trên biểu mẫu HTTP, proxy, cookie và xác thực người dùng + mật khẩu
  3. PHP/cURL. Mô-đun dành cho PHP giúp các chương trình PHP có thể sử dụng libcurl

Bây giờ bạn có một ý tưởng về các điều khoản khác nhau. Đối với "PHP/cURL", hầu hết các nhà phát triển cũng gọi nó là "curl in PHP", "curl with PHP", v.v. Trong hướng dẫn này, chúng tôi sẽ gọi nó là "curl trong PHP" theo thuật ngữ phổ biến. Mục tiêu của nhiệm vụ trong hướng dẫn này là sử dụng curl trong PHP để lấy dữ liệu từ Google và cụm từ tìm kiếm sẽ được gửi tới Google là "curl". Hãy để chúng tôi bắt đầu nhiệm vụ

#hoàn thành mục tiêu

Để sử dụng curl trong PHP rất đơn giản. Ý tưởng cơ bản của việc sử dụng curl trong PHP là

  1. Khởi tạo một phiên curl
  2. Đặt các tùy chọn khác nhau cho phiên
  3. Thực thi và tìm nạp/gửi dữ liệu từ/đến máy chủ
  4. Đóng phiên

Để hoàn thành mục tiêu của chúng tôi, mã đơn giản như


  • bước 1. Khởi tạo phiên sử dụng curl curl_init()
  • bước 2. Đặt tùy chọn cho CURLOPT_URL. Giá trị này là URL mà chúng tôi đang gửi yêu cầu tới. Nối cụm từ tìm kiếm "curl" bằng tham số "q=". Đặt tùy chọn cho CURLOPT_RETURNTRANSFER, true sẽ yêu cầu curl trả về chuỗi thay vì in ra. Đặt tùy chọn cho CURLOPT_HEADER, false sẽ yêu cầu curl bỏ qua tiêu đề trong giá trị trả về
  • bước 3. Thực hiện phiên cuộn tròn bằng cách sử dụng curl_exec()
  • bước 4. Đóng phiên curl chúng tôi đã tạo
  • bước5. Xuất chuỗi trả về

#Hơn

Rõ ràng là có nhiều tác vụ hơn bạn có thể thực hiện với curl trong PHP, hướng dẫn này gần như là cách đơn giản nhất để sử dụng nó. Tuy nhiên, bạn có thể mở rộng nó để thực hiện nhiều tác vụ hơn như xác thực tài khoản được bảo vệ bằng mật khẩu và tìm nạp dữ liệu từ đó. Các khu vực bạn có thể cần xem xét thêm để thực hiện các tác vụ nâng cao hơn được liệt kê bên dưới

  1. curl_error(). Đối với một hệ thống nâng cao hơn, bạn phải luôn sử dụng curl_error() để kiểm tra lỗi dựa trên giá trị trả về (bool) của curl_exec()
  2. curl_setopt(). Có một số lượng lớn các tùy chọn. Hãy xem các tập tin hướng dẫn. Trang này có giải thích rõ ràng về các tùy chọn khác nhau

#Kết thúc

Cảm ơn bạn đã đọc bài viết này và nếu bạn gặp bất kỳ điều gì khác biệt, có giải pháp khác hoặc nghĩ rằng giải pháp của chúng tôi sai, hãy cho chúng tôi biết trong phần bình luận. Chúng tôi sẽ rất vui khi nghe điều đó

Nếu bạn thích hướng dẫn của chúng tôi, vui lòng theo dõi chúng tôi trên Twitter và giúp quảng bá. Chúng tôi cần sự hỗ trợ của bạn để tiếp tục

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, 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
2
0
2
1

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 chức năng

2
41 để khởi tạo 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 hàm
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 chức năng

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
2
0
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
2
1
3
4
3
5
3
6
3
7
3
8
3
9_____36
4
1
4
2

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 chức năng

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

E

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 sẽ 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
2
0

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
2
1
4
2
3
5
2
09

29
2
10

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 đố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ì nó 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
_______341
3

43
4

45
5

47
2
0

49

0

51

2

53

4

55

5

57

7

59

8

61
3
1

63
3
2

65_____67___64

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

78
2
0

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
2
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 để lấy 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
2
0

92

0

94

2

96

4

98

5
2
00

7
2
02

8
3
1
2
05
3
2

81
3
4___109

Vì đây là một yêu cầu POST nên chúng ta cần truyề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 cách 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
2
0

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

Làm cách nào để chạy curl trong PHP?

Điều này được thực hiện bằng cách đặt tùy chọn cuộn tròn curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

Làm cách nào để cài đặt cuộn tròn PHP?

Sau đây là các bước cài đặt PHP-CURL trên hệ thống Ubuntu của bạn. .
Bước 1. Cài đặt thư viện PHP cho máy chủ bằng cách chạy lệnh sau. $ Sudo add-apt-kho lưu trữ ppa. ondrej/php
Bước 2. Sau đó, cập nhật máy chủ. $ cập nhật apt sudo
Bước 3. Bây giờ, hãy cài đặt CURL

Làm cách nào để kiểm tra độ cong trong PHP?

Ví dụ cuộn tròn trong PHP . //www. plus2net. com/php_tutorial/curl-test. php?str=$str"); curl_setopt($my_curl, CURLOPT_RETURNTRANSFER, 1); $return_str = curl_exec($my_curl); curl_close($my_curl); echo $return_str; ?>

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

cURL là viết tắt của URL khách hàng và là một công cụ được sử dụng trong PHP để lấy dữ liệu từ các URL được cung cấp cho khách hàng sử dụng.