cURL là gì? Cách sử dụng và thiết lập cURL trên PHP và Linux

cURL là gì?

cURL viết tắt của Client URL là một công cụ dòng lệnh (command line tool) dùng để kiểm tra kết nối từ URL và cho phép truyền dữ liệu. cURL sử dụng nhiều giao thức hỗ trợ khác nhau như: HTTP, HTTPS, FTPS,… cURL ra đời từ năm 1997, được viết bởi Daniel Stenberg. Chúng được lập trình để hoạt động mà không cần có sự tương tác của người dùng. Vậy công dụng của cURL là gì?

cURL là gì?

cURL là công cụ dòng lệnh cho phép truyền dữ liệu trên mạng

Để hiểu một cách đơn giản hơn thì về cơ bản, bạn có thể sử dụng lệnh cURL để upload và tải xuống nội dung từ internet. Nếu biết cách sử dụng và khai thác nó đúng mức, cURL sẽ trở thành một công cụ cực kỳ mạnh mẽ.

cURL Command hỗ trợ giao thức nào?

curl là gì? cURL có thể hỗ trợ rất nhiều giao thức

cURL có thể hỗ trợ rất nhiều giao thức

cURL Command có thể hỗ trợ các giao thức (protocol) sau: HTTP, HTTPS, IMAP, IMAPS, SMB, MBS, SFTP, GOPHER, LDAP, LDAPS, SCP, FTP, FTPS, TELNET, POP3, POP3S, SMTP, SMTPS.

Ngoài những protocol trên, cURL cũng hỗ trợ thêm một vài giao thức khác kém phổ biến và ít quan trọng hơn.

Các kiến thức liên quan cURL mà bạn cần biết:

Chức năng của cURL là gì?

curl là gì? Bạn có thể dùng cURL để tải tập tin, dữ liệu và tải các trang web trên mạng internet

Bạn có thể dùng cURL để tải tập tin, dữ liệu và tải các trang web trên mạng internet

Một trong những chức năng cơ bản nhất của cURL là giúp người dùng tải xuống máy một trang web trên mạng internet. Ngoài ra, bạn cũng có thể dùng nó để vận chuyển các tập tin, hình ảnh, dữ liệu,… từ đâu đó đến máy chủ hoặc từ máy chủ đến đâu đó. Không chỉ vậy, cURL còn cho phép bạn kiểm tra cookies nào đã được tải trên URL.

Cách sử dụng cURL PHP cơ bản

curl là gì? Các bước sử dụng cURL PHP

Các bước sử dụng cURL PHP

Để dùng cURL trong PHP, trước tiên, hệ thống của bạn cần có bộ thư viện libcurl của PHP. Nếu dùng các package cài đặt PHP như XAMP, WAMP, MAMP thì bạn có thể yên tâm vì thư viện libcurl đã được tích hợp sẵn trên đó.

Theo đó, bạn sẽ tuân thủ 4 bước để sử dụng cURL trong PHP. Cụ thể là:

  • Bước 1: Khởi tạo cURL
  • Bước 2: Thiết lập tùy chọn request
  • Bước 3: Thực thi
  • Bước 4: Đóng request, giải phóng tài nguyên

Cụ thể như sau:

Hàm khởi tạo cURL là gì?

Để khởi tạo cURL, bạn sử dụng hàm: curl init ().

Hệ thống sẽ trả về cho bạn một resource (một kiểu dữ liệu được định nghĩa trong PHP).

Thiết lập tùy chọn request

Để thiết lập tùy chọn request, bạn cần sử dụng hàm: curl_setopt(). Lưu ý, các curl_setopt() cần phải đứng trước curl_exec() thì mới có tác dụng. curl_setopt() là một hàm quan trọng trong cURL, được sử dụng để xử lý các dữ liệu đầu vào như: content-type, charset hoặc giá trị cookies, giao thức HTTP,…

Curl_setopt() thường sẽ có 3 tham số đầu vào, ngăn cách với nhau bằng dấu phẩy:

  • Tham số thứ nhất: Đối tượng cURL.
  • Tham số thứ hai: Tên cấu hình.
  • Tham số thứ ba: Giá trị của cấu hình.

(Ví dụ mẫu: curl_setopt($ch, CURLOPT_URL, https://www.matbao.net/’ ).

Một số tên cấu hình thông dụng với cURL có thể kể đến là:

  • CURLOPT_URL: Đường dẫn URL mà cURL gửi request.
  • CURLOPT_RETURNTRANSFER: Nếu TRUE thì kết quả sẽ được trả về ở hàm curl_exec theo dạng chuỗi chứ không xuất thẳng ra màn hình. Nếu FALSE thì kết quả mới được in lên trình duyệt.
  • CURLOPT_TIMEOUT: Thời gian duy trì kết nối của cURL (giá trị thường được để bằng 0, nghĩa là vô tận).
  • CURLOPT_USERAGENT: Giả lập trình duyệt đang gửi dữ liệu (user agent).
  • CURLOPT_FILE: Lưu kết quả vào file.
  • CURLOPT_POST: Nếu TRUE thì dữ liệu sẽ được gửi dưới dạng POST.
  • CURLOPT_POSTFIELDS: Mảng dữ liệu.

Trong trường hợp muốn thực hiện nhiều thiết lập tùy chọn cùng một lúc, bạn có thể sử dụng hàm curl_setopt_array(). Khi đó, cấu trúc của hàm curl_setopt_array() sẽ có dạng như sau:

 

Hàm thực thi cURL là gì?

Để thực hiện việc gửi request, bạn cần sử dụng hàm: curl_exec().

Nếu ở bước 2, bạn thiết lập tùy chọn request với cấu trúc: curl_setop($ch, CURLOPT_RETURNTRANSFER, 1)  thì giá trị trả về của curl_exec() sẽ là một chuỗi khi kết quả là TRUE.

Đóng request, giải phóng tài nguyên

Để đóng request, bạn cần sử dụng hàm: curl_close(). Thao tác này sẽ giúp bạn tiết kiệm đáng kể tài nguyên của hệ thông và nâng cao hiệu suất cho server.

Các lệnh cần biết của cURL trong Linux

Trong Linux có một số lệnh cURL cơ bản sau:

Lệnh kiểm tra phiên bản cURL là gì?

curl là gì Kiểm tra phiên bản sẽ giúp bạn biết được cURL đã được cài đặt hay chưa và nó phù hợp với giao thức nào

Kiểm tra phiên bản sẽ giúp bạn biết được cURL đã được cài đặt hay chưa và nó phù hợp với giao thức nào

Trước khi sử dụng cURL, bạn cần phải đăng nhập VPS bằng cách sử dụng SSH. Để chắc chắn rằng cURL đã được cài đặt vào hệ thống, hãy kiểm tra CURL bằng lệnh: curl –version, sau đó hệ thống sẽ hiển thị phiên bản CURL đang có trên máy. Từ đó, bạn sẽ biết được danh sách các giao thức mà cURL có thể hỗ trợ được.

Cú pháp của lệnh cURL là gì?

cURL trong Linux có cú pháp như sau: curl [OPTIONS] [URL]

Cách sử dụng phổ biến và cơ bản nhất của cURL là hiển thị nội dung trên trang. Ví dụ, nếu muốn xem nội dung của trang yourdomain.com, bạn cần sử dụng cú pháp: curl yourdomain.com. Hệ thống sẽ render (kết xuất) cho bạn mã nguồn trang chủ của domain này. Nếu không gõ giao thức vào thì cURL sẽ ngầm mặc định website này là HTTP.

Dùng cURL Command để tải file

Lệnh cURL có thể dùng để tải một dữ liệu từ máy chủ ở xa theo 2 cách:

  • (1): Lưu file trên folder hiện hành. Tên file download xuống giống với tên file từ xa.
  • (2): Cho phép tùy chọn tên file và đường dẫn lưu trữ.

Dưới đây là ví dụ cụ thể cho 2 cách trên:

Cách 1:

  • Lệnh cURL được viết theo cú pháp: curl -O http://yourdomain.com/yourfile.tar.gz
  • Khi đó, file sẽ được lưu với tên yourfile.tar.gz.

Cách 2:

  • Lệnh cURL được viết theo cú pháp:
 

Lúc này, file sẽ được lưu với tên mới là newyourfile.tar.gz. Ngoài ra, bạn cũng có thể sử dụng cURL để tải nhiều file bằng lệnh sau:

 

Lệnh HTTP cURL Command là gì?

Một chức năng khác của cURL đó là sử dụng như một server proxy để tải file. Dưới đây là ví dụ minh họa:

 

Trong ví dụ trên, nếu proxy không cần chứng thực thì bạn có thể không viết -U username:password vào cũng được. Ngoài ra, bạn có thể sử dụng cURL để kiểm tra thông tin header của web HTTP. Muốn làm được điều này, bạn cần thực hiện câu lệnh:

 

Bên cạnh đó, với cURL, bạn còn có thể gửi yêu cầu GET và POST với các lệnh có dạng như sau:

  • GET request: curl http://mydomain.com
  • POST request: curl data text=Howareyou https://mydomain.com/firstpage.jsp

Người dùng cũng có thể xác định các phương pháp HTTP (POST và GET request) trong cùng 1 câu lệnh cURL thông qua tùy chọn -next. Dưới đây là ví dụ câu lệnh mẫu:

 

Lệnh cURL cho Cookies là gì?

Bạn có thể sử dụng cURL Command để kiểm tra các cookies nào được tải trên URL.

Ví dụ, trang web mà bạn truy cập có dạng: https://www.samplewebsite.com, bạn có thể output trang đó dưới dạng một file và lưu cookies bằng cách sử dụng câu lệnh như bên dưới:

Nếu có sẵn cookies trong file, bạn có thể upload nó lên website thông qua câu lệnh có dạng như sau:

 

Lệnh cURL cho FTP là gì?

Vậy định nghĩa của giao thức FTP là gì?

FTP viết tắt của File Transfer Protocol là giao thức giúp bạn trao đổi bất kỳ tập tin nào từ máy tính cá nhân lên máy chủFile Transfer Protocol tạm dịch là giao thức chuyển nhượng tập tin.

Tải file xuống

  • cURL có thể được dùng để hỗ trợ giao thức FTP với mục đích tải file từ máy chủ từ xa. Dưới đây là câu lệnh mẫu:
  • Với dòng lệnh trên, ftp://nameftpserver chính là FTP server nhận request kết nối. Nếu sever hỗ trợ FTP ẩn danh, bạn có thể không cần điền username và password cũng được.

Upload file

  • Trong trường hợp nếu muốn upload file lên FTP server, bạn có thể sử dụng lệnh sau:
  • Cũng tương tự như trường hợp tải file từ FTP server xuống, người dùng có thể bỏ qua username và password nếu sử dụng được kết nối ẩn danh.

Lệnh giới hạn output của cURL là gì?

Việc không biết được outpout lớn đến đâu khi sử dụng cURL có thể gây một số rắc rối sau này cho bạn, ví dụ như dung lượng file quá lớn khiến máy download chậm, nghẽn mạng,… Do đó để hạn chế tình trạng sử dụng băng thông lớn, bạn có thể giới hạn cURL output bằng cách sử dụng lệnh có dạng như sau:

Với câu lệnh này thì giới hạn băng thông tải xuống là 100K.

cURL là một công cụ dòng lệnh mạnh mẽ và được sử dụng rất phổ biến hiện nay. Hy vọng với những chia sẻ trên đây của “Mắt Bãonhà cung cấp dịch vụ cho thuê máy chủ uy tín nhất“, bạn đã hiểu hơn về cURL và cách thức thiết lập cũng như sử dụng nó. Chúc các bạn thành công!