CURL Là Gì? Hướng Dẫn Thiết Lập & Sử Dụng CURL Trên PHP
Xem nhanh
- CURL là gì?
- Các giao thức được cURL Command hỗ trợ
- Chức năng của cURL
- Cách sử dụng cURL trong PHP
- Khởi tạo và cấu hình cURL
- Thiết lập các tùy chọn request
- Thực hiện đóng request, giải phóng tài nguyên
- Cài đặt & các lệnh cURL trên Linux
- Hướng dẫn cài đặt cURL trên Linux
- Các lệnh cURL cơ bản cần nắm trong Linux
- Lệnh kiểm tra phiên bản cURL
- Lệnh tổng quát các tùy chọn cURL
- Lệnh tải file sử dụng cURL Command
- Lệnh HTTP cURL Command
- Lệnh cURL với Cookies
- Lệnh cURL đối với FTP
- Lệnh cURL giới hạn tải về
- Lệnh cURL gửi biểu mẫu và xác thực HTTP
cURl là gì? cURl là từ viết tắt của “Client URL”, là công cụ dòng lệnh được sử dụng để kiểm tra những kết nối từ URL và cho phép truyền dữ liệu bằng nhiều giao thức khác nhau. Để thiết lập và sử dụng cURl hiệu quả hãy theo dõi bài viết dưới đây của FPT Cloud nhé.
CURL là gì?
CURl là dự án phần mềm máy tính cung cấp thư viện và công cụ dòng lệnh giúp kiểm tra kết nối URL, truyền dữ liệu bằng các giao thức. cURl được phát triển bởi Daniel Stenberg, người Thụy Điển vào năm 1997. cURl là một công cụ linh hoạt và mạnh mẽ được sử dụng rộng rãi trong phát triển phần mềm và quản trị hệ thống.

Tính đến nay, cURl trở thành một trong những công cụ dòng lệnh được sử dụng phổ biến nhất trên thế giới:
- Tích hợp trong hơn 20 tỷ thiết bị, hệ điều hành Windows, macOS, Linux, Android & thiết bị IoT, ô tô, router, TV thông minh,...
- Sử dụng trong hàng triệu các dự án phần mềm của các doanh nghiệp lớn
- Được các hãng công nghệ lớn như Google, Apple, Facebook, Microsoft, Amazon,...tin dùng.
Các giao thức được cURL Command hỗ trợ

cURl hỗ trợ đa dạng các giao thức truyền dữ liệu thuận tiện cho việc tải xuống, gửi dữ liệu và kiểm thử API tương tác với nhiều hệ thống mạng khác nhau. Dưới đây là danh sách 18 giao thức được sử dụng phổ biến:
| Tên giao thức | Chức năng |
| HTTP | Giao thức truyền tải siêu văn bản, giúp các máy tính có thể giao tiếp với nhau qua mạng. |
| HTTPS | Phiên bản bảo mật của giao thức HTTP sử dụng SSL/TLS để mã hóa và bảo vệ thông tin truyền tải. |
| FTP | Giao thức truyền tải dữ liệu giữa máy tính và máy chủ từ xa. |
| FTPS | Phiên bản bảo mật của giao thức FTP sử dụng SSL/TLS để mã hóa dữ liệu trong quá trình truyền tải. |
| SFTP | Giao thức cung cấp truyền truy cập tệp, truyền tệp và quản lý tệp. |
| SCP | Giao thức sao chép an toàn giữa các máy chủ. |
| LDAP | Giao thức truy cập cơ sở dữ liệu phân tán giúp truy cập và quản lý dịch vụ thư mục. |
| TELNET | Giao thức mạng được sử dụng kết nối với internet, mạng máy tính cục bộ LAN. |
| IMAP | Giao thức mạng được sử dụng truy cập và quản lý email từ máy chủ. |
| IMAPS | Phiên bản bảo mật của giao thức IMAP. |
| POP3 | Giao thức tầng ứng dụng để kết nối và tải email từ máy chủ email về máy tính cá nhân. |
| SMB | Giao thức mạng sử dụng trong DOS và Windows để chia sẻ tệp, máy in, cổng nối tiếp. |
| SMBS | Phiên bản bảo mật nâng cao của giao thức SMB. |
| TFTP | Giao thức dùng để truyền tệp giữa các thiết bị mạng. |
| RTMP | Giao thức truyền phát video, âm thanh và dữ liệu qua mạng. |
| RTSP | Giao thức truyền tin theo thời gian thực trong các hệ thống giải trí, truyền thông. |
| DICT | Giao thức mạng giúp truy cập vào các từ điển trực tuyến. |
| GOPHER | Giao thức dùng để phân phối, truy cập, tìm kiếm tài liệu. |
Khi sử dụng CURL để kiểm tra API hoặc gửi yêu cầu HTTP, việc triển khai trên môi trường ổn định là rất quan trọng. Nhiều lập trình viên lựa chọn thuê VPS giá rẻ hoặc thuê máy chủ cloud để đảm bảo quá trình thử nghiệm diễn ra liên tục, bảo mật và không phụ thuộc vào máy cá nhân.
Chức năng của cURL

Dưới đây là những chức năng chính của cURL:
- Kiểm tra kết nối từ URL: Bằng cách gửi yêu cầu HTTP hoặc các giao thức khác đến máy chủ xem một URL có thể truy cập được hay không. Đồng thời cURL còn hỗ trợ quản lý cookie, duy trì phiên làm việc.
- Tải xuống trang web, hình ảnh từ mạng: cURL cho phép người dùng tải trực tiếp nội dung trang web, hình ảnh về máy tính và lưu các tệp tin này một cách tự động.
- Truyền tập tin, dữ liệu, hình ảnh giữa client và server: Thông qua các giao thức trên thì người dùng có thể gửi, nhận tệp tin, dữ liệu, hình ảnh một cách an toàn, nhanh chóng. Để quản lý và lưu trữ dữ liệu hiệu quả hơn, nhiều developer thường tích hợp thêm dịch vụ Object Storage để giúp lưu trữ file tải xuống hoặc upload qua cURL đảm bảo an toàn, linh hoạt.
>> Xem thêm: TOP dịch vụ lưu trữ đám mây được sử dụng nhiều nhất hiện nay
Cách sử dụng cURL trong PHP

Bạn cần cài đặt thư viện libcurl trong hệ thống trên:
- Trên Linux (Ubuntu/Debian)
- Trên CentOS/Fedora/RHEL
- Trên Windows. Nếu bạn dùng XAMPP, WAMP, hoặc MAMP, libcurl thì thường đã được tích hợp sẵn.
Sau khi cài xong cần thực hiện 3 bước dưới đây để sử dụng cURL trong PHP:
Khởi tạo và cấu hình cURL
Sử dụng hàm curl_init() để khởi tạo, hàm này trả về một biến resource cURl.

Tiếp đến bạn sử dụng hàm curl_setopt() để cấu hình các tùy chọn của request gồm:
- Đặt URl
- Header
- Phương thức
- Dữ liệu gửi đi
- Thời gian chờ
Thiết lập các tùy chọn request
Một số tùy chọn request phổ biến với cURL:
| Tên tùy chọn | Mô tả |
| CURLOPT_URL | Đường dẫn URL |
| CURLOPT_RETURNTRANSFER | Trả về kết quả từ curl_exec là TRUE dạng chuỗi hoặc FALSE hiển thị trực tiếp màn hình |
| CURLOPT_TIMEOUT | Thời gian duy trì kết nối cURL tính bằng giây |
| CURLOPT_USERAGENT | Giả lập chuỗi user agent của trình duyệt gửi dữ liệu |
| CURLOPT_FILE | Lưu kết quả vào file |
| CURLOPT_POST | Kết quả TRUE dữ liệu gửi về dạng POST |
| CURL_POSTFIELDS | Mảng hoặc chuỗi dữ liệu được gửi kèm POST |
Để thiết lập các tùy chọn request bạn sử dụng hàm curl_setopt() là chủ yếu. Tuy nhiên trước khi sử dụng bạn cần gọi hàm curl_exec() để có hiệu lực và nhận 3 tham số:
- Biến cURL
- Tên cấu hình
- Giá trị cấu hình
Sử dụng hàm curl_setopt_array() để thiết lập nhiều tùy chọn cùng lúc.

Thực hiện đóng request, giải phóng tài nguyên
Để đóng request sau khi hoàn tất việc sử dụng cURL bạn sử dụng hàm curl_close() và đóng phiên cURL giải phóng tài nguyên nhằm tiết kiệm và cải thiện hiệu suất của máy chủ.

Cài đặt & các lệnh cURL trên Linux
Dưới đây là hướng dẫn cài đặt và một số lệnh cURL phổ biến trên hệ điều hành Linux:
Hướng dẫn cài đặt cURL trên Linux
Thông thường cURl được cài đặt sẵn trên hầu hết các máy tính có hệ điều hành Linux. Tuy nhiên có những máy chưa được cài đặt thì bạn có thể thực hiện tải xuống và cài đặt cURl bằng các lệnh tương ứng dưới đây:
Link cài đặt cURL: https://curl.haxx.se/
Điều kiện thực hiện các lệnh cài đặt: Cần được cấp quyền root hoặc quyền sudo trên hệ thống của mình.
Cài đặt cURL cho Debian/Ubuntu:
Sử dụng công cụ quản lý gói phần mềm apt để cài đặt với câu lệnh:

- sudo apt update: Cập nhật danh sách các gói phần mềm mới nhất từ kho lưu trữ.
- sudo apt install curl: Tải về và cài đặt công cụ cURL trên hệ thống.
Cài đặt cURL cho OpenSUSE:
Sử dụng trình quản lý gói yum hoặc dnf để cài đặt cURL:

Cài đặt cURL cho RHEL, CentOS, Fedora:
Sử dụng trình quản lý zipper để cài đặt cURL:

Các lệnh cURL cơ bản cần nắm trong Linux
Dưới đây là một số dòng lệnh cURL cơ bản thường được dùng trong Linux:
Lệnh kiểm tra phiên bản cURL
Sử dụng lệnh: curl –version

Bạn phải đăng nhập VPS thông qua SSH để kiểm tra cài đặt cURL. Kết quả trả về hiển thị phiên bản hiện tại của cURL và danh sách các giao thức cURL hỗ trợ.
Lệnh tổng quát các tùy chọn cURL
Sử dụng lệnh: curl [OPTIONS] [URL]
Đây là cú pháp lệnh cơ bản cURL trong Linux để thực hiện các tùy chọn yêu cầu đến một URL cụ thể. Nếu không chỉ định giao thức thì cURL sẽ mặc định sử dụng giao thức HTTP.

Lệnh tải file sử dụng cURL Command
Sử dụng lệnh: curl -O http://yourdomain.com/yourfile.tar.gz

Lệnh này giúp tải file từ một URL vào lưu lại trong thư mục làm việc hiện tại với tên file giống với tên file gốc.
Để đặt tải file và có thể tùy chỉnh tên file theo ý bạn sử dụng lệnh: curl -o newyourfile.tar.gz http://yourdomain.com/yourfile.tar.
Lệnh HTTP cURL Command
Sử dụng lệnh: curl -I www.yourdomain.com kiểm tra thông tin header web HTTP bao gồm:
- Content-Type
- Date
- Server
- Content-Length
- Last-Modified
- Một số thông tin khác
Lệnh để gửi yêu cầu POST: curl --data "text=Howareyou" https://mydomain.com/firstpage.jsp

Lệnh để gửi yêu cầu GET: curl http://mydomain.com

Lệnh cURL với Cookies
Sử dụng lệnh: curl --cookie-jar Mycookies.txt https://www.samplewebsite.com /index.html -O để gửi một yêu cầu tới một trang web và lưu lại cookies vào một tệp tin khi bạn muốn duy trì đăng nhập và các thông tin liên quan.

Sử dụng lệnh: curl --cookie Mycookies.txt https://www.samplewebsite.com để gửi yêu cầu đến trang web và sử dụng các cookies đã lưu từ tệp tin của cookies trước đó.

Lệnh cURL đối với FTP
Sử dụng lệnh: curl -u username:password -O ftp://nameftpserver/yourfile.tar.gz để tải file từ một FTP và nhập tên người dùng, mật khẩu, đường dẫn để tải về.

Sử dụng lệnh: curl -u username:password -T yourfile.tar.gz ftp://nameftpserver để upload file lên FTP và nhập tên người dùng, mật khẩu, đường dẫn của file cần tải lên.

Lệnh cURL giới hạn tải về
Sử dụng lệnh: curl --limit-rate 100K http://testdomain.com/samplefile.tar.gz -O để giới hạn tốc độ tải xuống của cURL về mức 100KB/s nhằm kiểm soát băng thông sử dụng khi tải file về từ một URL bất kỳ.

Lệnh cURL gửi biểu mẫu và xác thực HTTP
Sử dụng lệnh để gửi biểu mẫu: curl --data "username=john&password=123456" https://yourdomain.com/login.php

Sử dụng lệnh để xác thực HTTP: curl -u username:password https://yourdomain.com/protected

Như vậy, cURL là công cụ dòng lệnh mạnh mẽ, linh hoạt và là trợ thủ đắc lực cho quản trị viên hệ thống, nhà phát triển khi tương tác với API hoặc khi tải dữ liệu tự động từ URL. Hy vọng bài viết “cURL là gì” của FPT Cloud đã giúp bạn hiểu rõ hơn về khái niệm, cách thiết lập và sử dụng cURL hiệu quả nhé.
Từ khóa » Hàm Curl Trong Php
-
CURL Và Cách Sử Dụng Trong PHP - Viblo
-
Sử Dụng CURL Trong PHP
-
Bài 02: Tìm Hiểu Hàm Curl_setopt (CURL PHP) - Freetuts
-
Học CURL PHP - Freetuts
-
Hàm Curl_exec() Trong PHP Dùng để Làm Gì? - Code Từ Tâm
-
CURL Là Gì? Cách Sử Dụng Curl | TopDev
-
PHP: CURL Là Gì? Cách Sử Dụng Và Thiết Lập CURL Trên PHP Và Linux
-
Tìm Hiểu Hàm Curl_setopt (CURL PHP)
-
CURL Là Gì? Cách Sử Dụng CURL Cơ Bản Trong PHP - Vietnix
-
CURL Là Gì Và Cách Sử Dụng CURL Trong Php - Công Nghệ 5s
-
Curl Là Gì ? Cách Sử Dụng Curl Trong PHP - Hoclaptrinh
-
Php Curl Cơ Bản Và Cách Sử Dụng - Hoàng Web
-
Hướng Dẫn Sử Dụng CURL để Gửi HTTP Request Trong PHP
-
Đặt Thời Gian Chờ Của Curl Trong PHP